001package org.hl7.fhir.r4.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 Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.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/StructureDefinition/SearchParameter") 050@ChildOrder(names={"url", "version", "name", "derivedFrom", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "code", "base", "type", "expression", "xpath", "xpathUsage", "target", "multipleOr", "multipleAnd", "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 Than"; 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 * The search parameter applies to the identifier on the resource, not the reference. 440 */ 441 IDENTIFIER, 442 /** 443 * The search parameter has the format system|code|value, where the system and code refer to a Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present. 444 */ 445 OFTYPE, 446 /** 447 * added to help the parsers with the generic types 448 */ 449 NULL; 450 public static SearchModifierCode fromCode(String codeString) throws FHIRException { 451 if (codeString == null || "".equals(codeString)) 452 return null; 453 if ("missing".equals(codeString)) 454 return MISSING; 455 if ("exact".equals(codeString)) 456 return EXACT; 457 if ("contains".equals(codeString)) 458 return CONTAINS; 459 if ("not".equals(codeString)) 460 return NOT; 461 if ("text".equals(codeString)) 462 return TEXT; 463 if ("in".equals(codeString)) 464 return IN; 465 if ("not-in".equals(codeString)) 466 return NOTIN; 467 if ("below".equals(codeString)) 468 return BELOW; 469 if ("above".equals(codeString)) 470 return ABOVE; 471 if ("type".equals(codeString)) 472 return TYPE; 473 if ("identifier".equals(codeString)) 474 return IDENTIFIER; 475 if ("ofType".equals(codeString)) 476 return OFTYPE; 477 if (Configuration.isAcceptInvalidEnums()) 478 return null; 479 else 480 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 481 } 482 public String toCode() { 483 switch (this) { 484 case MISSING: return "missing"; 485 case EXACT: return "exact"; 486 case CONTAINS: return "contains"; 487 case NOT: return "not"; 488 case TEXT: return "text"; 489 case IN: return "in"; 490 case NOTIN: return "not-in"; 491 case BELOW: return "below"; 492 case ABOVE: return "above"; 493 case TYPE: return "type"; 494 case IDENTIFIER: return "identifier"; 495 case OFTYPE: return "ofType"; 496 default: return "?"; 497 } 498 } 499 public String getSystem() { 500 switch (this) { 501 case MISSING: return "http://hl7.org/fhir/search-modifier-code"; 502 case EXACT: return "http://hl7.org/fhir/search-modifier-code"; 503 case CONTAINS: return "http://hl7.org/fhir/search-modifier-code"; 504 case NOT: return "http://hl7.org/fhir/search-modifier-code"; 505 case TEXT: return "http://hl7.org/fhir/search-modifier-code"; 506 case IN: return "http://hl7.org/fhir/search-modifier-code"; 507 case NOTIN: return "http://hl7.org/fhir/search-modifier-code"; 508 case BELOW: return "http://hl7.org/fhir/search-modifier-code"; 509 case ABOVE: return "http://hl7.org/fhir/search-modifier-code"; 510 case TYPE: return "http://hl7.org/fhir/search-modifier-code"; 511 case IDENTIFIER: return "http://hl7.org/fhir/search-modifier-code"; 512 case OFTYPE: return "http://hl7.org/fhir/search-modifier-code"; 513 default: return "?"; 514 } 515 } 516 public String getDefinition() { 517 switch (this) { 518 case MISSING: return "The search parameter returns resources that have a value or not."; 519 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)."; 520 case CONTAINS: return "The search parameter returns resources that include the supplied parameter value anywhere within the field being searched."; 521 case NOT: return "The search parameter returns resources that do not contain a match."; 522 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."; 523 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."; 524 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."; 525 case BELOW: return "The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships)."; 526 case ABOVE: return "The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships)."; 527 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.)."; 528 case IDENTIFIER: return "The search parameter applies to the identifier on the resource, not the reference."; 529 case OFTYPE: return "The search parameter has the format system|code|value, where the system and code refer to a Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present."; 530 default: return "?"; 531 } 532 } 533 public String getDisplay() { 534 switch (this) { 535 case MISSING: return "Missing"; 536 case EXACT: return "Exact"; 537 case CONTAINS: return "Contains"; 538 case NOT: return "Not"; 539 case TEXT: return "Text"; 540 case IN: return "In"; 541 case NOTIN: return "Not In"; 542 case BELOW: return "Below"; 543 case ABOVE: return "Above"; 544 case TYPE: return "Type"; 545 case IDENTIFIER: return "Identifier"; 546 case OFTYPE: return "Of Type"; 547 default: return "?"; 548 } 549 } 550 } 551 552 public static class SearchModifierCodeEnumFactory implements EnumFactory<SearchModifierCode> { 553 public SearchModifierCode fromCode(String codeString) throws IllegalArgumentException { 554 if (codeString == null || "".equals(codeString)) 555 if (codeString == null || "".equals(codeString)) 556 return null; 557 if ("missing".equals(codeString)) 558 return SearchModifierCode.MISSING; 559 if ("exact".equals(codeString)) 560 return SearchModifierCode.EXACT; 561 if ("contains".equals(codeString)) 562 return SearchModifierCode.CONTAINS; 563 if ("not".equals(codeString)) 564 return SearchModifierCode.NOT; 565 if ("text".equals(codeString)) 566 return SearchModifierCode.TEXT; 567 if ("in".equals(codeString)) 568 return SearchModifierCode.IN; 569 if ("not-in".equals(codeString)) 570 return SearchModifierCode.NOTIN; 571 if ("below".equals(codeString)) 572 return SearchModifierCode.BELOW; 573 if ("above".equals(codeString)) 574 return SearchModifierCode.ABOVE; 575 if ("type".equals(codeString)) 576 return SearchModifierCode.TYPE; 577 if ("identifier".equals(codeString)) 578 return SearchModifierCode.IDENTIFIER; 579 if ("ofType".equals(codeString)) 580 return SearchModifierCode.OFTYPE; 581 throw new IllegalArgumentException("Unknown SearchModifierCode code '"+codeString+"'"); 582 } 583 public Enumeration<SearchModifierCode> fromType(Base code) throws FHIRException { 584 if (code == null) 585 return null; 586 if (code.isEmpty()) 587 return new Enumeration<SearchModifierCode>(this); 588 String codeString = ((PrimitiveType) code).asStringValue(); 589 if (codeString == null || "".equals(codeString)) 590 return null; 591 if ("missing".equals(codeString)) 592 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.MISSING); 593 if ("exact".equals(codeString)) 594 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.EXACT); 595 if ("contains".equals(codeString)) 596 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.CONTAINS); 597 if ("not".equals(codeString)) 598 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOT); 599 if ("text".equals(codeString)) 600 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TEXT); 601 if ("in".equals(codeString)) 602 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IN); 603 if ("not-in".equals(codeString)) 604 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOTIN); 605 if ("below".equals(codeString)) 606 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.BELOW); 607 if ("above".equals(codeString)) 608 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.ABOVE); 609 if ("type".equals(codeString)) 610 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TYPE); 611 if ("identifier".equals(codeString)) 612 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IDENTIFIER); 613 if ("ofType".equals(codeString)) 614 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.OFTYPE); 615 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 616 } 617 public String toCode(SearchModifierCode code) { 618 if (code == SearchModifierCode.MISSING) 619 return "missing"; 620 if (code == SearchModifierCode.EXACT) 621 return "exact"; 622 if (code == SearchModifierCode.CONTAINS) 623 return "contains"; 624 if (code == SearchModifierCode.NOT) 625 return "not"; 626 if (code == SearchModifierCode.TEXT) 627 return "text"; 628 if (code == SearchModifierCode.IN) 629 return "in"; 630 if (code == SearchModifierCode.NOTIN) 631 return "not-in"; 632 if (code == SearchModifierCode.BELOW) 633 return "below"; 634 if (code == SearchModifierCode.ABOVE) 635 return "above"; 636 if (code == SearchModifierCode.TYPE) 637 return "type"; 638 if (code == SearchModifierCode.IDENTIFIER) 639 return "identifier"; 640 if (code == SearchModifierCode.OFTYPE) 641 return "ofType"; 642 return "?"; 643 } 644 public String toSystem(SearchModifierCode code) { 645 return code.getSystem(); 646 } 647 } 648 649 @Block() 650 public static class SearchParameterComponentComponent extends BackboneElement implements IBaseBackboneElement { 651 /** 652 * The definition of the search parameter that describes this part. 653 */ 654 @Child(name = "definition", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=false) 655 @Description(shortDefinition="Defines how the part works", formalDefinition="The definition of the search parameter that describes this part." ) 656 protected CanonicalType definition; 657 658 /** 659 * A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 660 */ 661 @Child(name = "expression", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false) 662 @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." ) 663 protected StringType expression; 664 665 private static final long serialVersionUID = -1469435618L; 666 667 /** 668 * Constructor 669 */ 670 public SearchParameterComponentComponent() { 671 super(); 672 } 673 674 /** 675 * Constructor 676 */ 677 public SearchParameterComponentComponent(CanonicalType definition, StringType expression) { 678 super(); 679 this.definition = definition; 680 this.expression = expression; 681 } 682 683 /** 684 * @return {@link #definition} (The definition of the search parameter that describes this part.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 685 */ 686 public CanonicalType getDefinitionElement() { 687 if (this.definition == null) 688 if (Configuration.errorOnAutoCreate()) 689 throw new Error("Attempt to auto-create SearchParameterComponentComponent.definition"); 690 else if (Configuration.doAutoCreate()) 691 this.definition = new CanonicalType(); // bb 692 return this.definition; 693 } 694 695 public boolean hasDefinitionElement() { 696 return this.definition != null && !this.definition.isEmpty(); 697 } 698 699 public boolean hasDefinition() { 700 return this.definition != null && !this.definition.isEmpty(); 701 } 702 703 /** 704 * @param value {@link #definition} (The definition of the search parameter that describes this part.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 705 */ 706 public SearchParameterComponentComponent setDefinitionElement(CanonicalType value) { 707 this.definition = value; 708 return this; 709 } 710 711 /** 712 * @return The definition of the search parameter that describes this part. 713 */ 714 public String getDefinition() { 715 return this.definition == null ? null : this.definition.getValue(); 716 } 717 718 /** 719 * @param value The definition of the search parameter that describes this part. 720 */ 721 public SearchParameterComponentComponent setDefinition(String value) { 722 if (this.definition == null) 723 this.definition = new CanonicalType(); 724 this.definition.setValue(value); 725 return this; 726 } 727 728 /** 729 * @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 730 */ 731 public StringType getExpressionElement() { 732 if (this.expression == null) 733 if (Configuration.errorOnAutoCreate()) 734 throw new Error("Attempt to auto-create SearchParameterComponentComponent.expression"); 735 else if (Configuration.doAutoCreate()) 736 this.expression = new StringType(); // bb 737 return this.expression; 738 } 739 740 public boolean hasExpressionElement() { 741 return this.expression != null && !this.expression.isEmpty(); 742 } 743 744 public boolean hasExpression() { 745 return this.expression != null && !this.expression.isEmpty(); 746 } 747 748 /** 749 * @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 750 */ 751 public SearchParameterComponentComponent setExpressionElement(StringType value) { 752 this.expression = value; 753 return this; 754 } 755 756 /** 757 * @return A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 758 */ 759 public String getExpression() { 760 return this.expression == null ? null : this.expression.getValue(); 761 } 762 763 /** 764 * @param value A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 765 */ 766 public SearchParameterComponentComponent setExpression(String value) { 767 if (this.expression == null) 768 this.expression = new StringType(); 769 this.expression.setValue(value); 770 return this; 771 } 772 773 protected void listChildren(List<Property> children) { 774 super.listChildren(children); 775 children.add(new Property("definition", "canonical(SearchParameter)", "The definition of the search parameter that describes this part.", 0, 1, definition)); 776 children.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, 1, expression)); 777 } 778 779 @Override 780 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 781 switch (_hash) { 782 case -1014418093: /*definition*/ return new Property("definition", "canonical(SearchParameter)", "The definition of the search parameter that describes this part.", 0, 1, definition); 783 case -1795452264: /*expression*/ return 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, 1, expression); 784 default: return super.getNamedProperty(_hash, _name, _checkValid); 785 } 786 787 } 788 789 @Override 790 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 791 switch (hash) { 792 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // CanonicalType 793 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 794 default: return super.getProperty(hash, name, checkValid); 795 } 796 797 } 798 799 @Override 800 public Base setProperty(int hash, String name, Base value) throws FHIRException { 801 switch (hash) { 802 case -1014418093: // definition 803 this.definition = castToCanonical(value); // CanonicalType 804 return value; 805 case -1795452264: // expression 806 this.expression = castToString(value); // StringType 807 return value; 808 default: return super.setProperty(hash, name, value); 809 } 810 811 } 812 813 @Override 814 public Base setProperty(String name, Base value) throws FHIRException { 815 if (name.equals("definition")) { 816 this.definition = castToCanonical(value); // CanonicalType 817 } else if (name.equals("expression")) { 818 this.expression = castToString(value); // StringType 819 } else 820 return super.setProperty(name, value); 821 return value; 822 } 823 824 @Override 825 public Base makeProperty(int hash, String name) throws FHIRException { 826 switch (hash) { 827 case -1014418093: return getDefinitionElement(); 828 case -1795452264: return getExpressionElement(); 829 default: return super.makeProperty(hash, name); 830 } 831 832 } 833 834 @Override 835 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 836 switch (hash) { 837 case -1014418093: /*definition*/ return new String[] {"canonical"}; 838 case -1795452264: /*expression*/ return new String[] {"string"}; 839 default: return super.getTypesForProperty(hash, name); 840 } 841 842 } 843 844 @Override 845 public Base addChild(String name) throws FHIRException { 846 if (name.equals("definition")) { 847 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.definition"); 848 } 849 else if (name.equals("expression")) { 850 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 851 } 852 else 853 return super.addChild(name); 854 } 855 856 public SearchParameterComponentComponent copy() { 857 SearchParameterComponentComponent dst = new SearchParameterComponentComponent(); 858 copyValues(dst); 859 dst.definition = definition == null ? null : definition.copy(); 860 dst.expression = expression == null ? null : expression.copy(); 861 return dst; 862 } 863 864 @Override 865 public boolean equalsDeep(Base other_) { 866 if (!super.equalsDeep(other_)) 867 return false; 868 if (!(other_ instanceof SearchParameterComponentComponent)) 869 return false; 870 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other_; 871 return compareDeep(definition, o.definition, true) && compareDeep(expression, o.expression, true) 872 ; 873 } 874 875 @Override 876 public boolean equalsShallow(Base other_) { 877 if (!super.equalsShallow(other_)) 878 return false; 879 if (!(other_ instanceof SearchParameterComponentComponent)) 880 return false; 881 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other_; 882 return compareValues(expression, o.expression, true); 883 } 884 885 public boolean isEmpty() { 886 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(definition, expression); 887 } 888 889 public String fhirType() { 890 return "SearchParameter.component"; 891 892 } 893 894 } 895 896 /** 897 * 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. 898 */ 899 @Child(name = "derivedFrom", type = {CanonicalType.class}, order=0, min=0, max=1, modifier=false, summary=false) 900 @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." ) 901 protected CanonicalType derivedFrom; 902 903 /** 904 * Explanation of why this search parameter is needed and why it has been designed as it has. 905 */ 906 @Child(name = "purpose", type = {MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=false) 907 @Description(shortDefinition="Why this search parameter is defined", formalDefinition="Explanation of why this search parameter is needed and why it has been designed as it has." ) 908 protected MarkdownType purpose; 909 910 /** 911 * The code used in the URL or the parameter name in a parameters resource for this search parameter. 912 */ 913 @Child(name = "code", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 914 @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." ) 915 protected CodeType code; 916 917 /** 918 * The base resource type(s) that this search parameter can be used against. 919 */ 920 @Child(name = "base", type = {CodeType.class}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 921 @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." ) 922 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 923 protected List<CodeType> base; 924 925 /** 926 * The type of value that a search parameter may contain, and how the content is interpreted. 927 */ 928 @Child(name = "type", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true) 929 @Description(shortDefinition="number | date | string | token | reference | composite | quantity | uri | special", formalDefinition="The type of value that a search parameter may contain, and how the content is interpreted." ) 930 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-param-type") 931 protected Enumeration<SearchParamType> type; 932 933 /** 934 * A FHIRPath expression that returns a set of elements for the search parameter. 935 */ 936 @Child(name = "expression", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 937 @Description(shortDefinition="FHIRPath expression that extracts the values", formalDefinition="A FHIRPath expression that returns a set of elements for the search parameter." ) 938 protected StringType expression; 939 940 /** 941 * An XPath expression that returns a set of elements for the search parameter. 942 */ 943 @Child(name = "xpath", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 944 @Description(shortDefinition="XPath that extracts the values", formalDefinition="An XPath expression that returns a set of elements for the search parameter." ) 945 protected StringType xpath; 946 947 /** 948 * How the search parameter relates to the set of elements returned by evaluating the xpath query. 949 */ 950 @Child(name = "xpathUsage", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=false) 951 @Description(shortDefinition="normal | phonetic | nearby | distance | other", formalDefinition="How the search parameter relates to the set of elements returned by evaluating the xpath query." ) 952 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-xpath-usage") 953 protected Enumeration<XPathUsageType> xpathUsage; 954 955 /** 956 * Types of resource (if a resource is referenced). 957 */ 958 @Child(name = "target", type = {CodeType.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 959 @Description(shortDefinition="Types of resource (if a resource reference)", formalDefinition="Types of resource (if a resource is referenced)." ) 960 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 961 protected List<CodeType> target; 962 963 /** 964 * Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 965 */ 966 @Child(name = "multipleOr", type = {BooleanType.class}, order=9, min=0, max=1, modifier=false, summary=false) 967 @Description(shortDefinition="Allow multiple values per parameter (or)", formalDefinition="Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match." ) 968 protected BooleanType multipleOr; 969 970 /** 971 * Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 972 */ 973 @Child(name = "multipleAnd", type = {BooleanType.class}, order=10, min=0, max=1, modifier=false, summary=false) 974 @Description(shortDefinition="Allow multiple parameters (and)", formalDefinition="Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match." ) 975 protected BooleanType multipleAnd; 976 977 /** 978 * Comparators supported for the search parameter. 979 */ 980 @Child(name = "comparator", type = {CodeType.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 981 @Description(shortDefinition="eq | ne | gt | lt | ge | le | sa | eb | ap", formalDefinition="Comparators supported for the search parameter." ) 982 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-comparator") 983 protected List<Enumeration<SearchComparator>> comparator; 984 985 /** 986 * A modifier supported for the search parameter. 987 */ 988 @Child(name = "modifier", type = {CodeType.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 989 @Description(shortDefinition="missing | exact | contains | not | text | in | not-in | below | above | type | identifier | ofType", formalDefinition="A modifier supported for the search parameter." ) 990 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-modifier-code") 991 protected List<Enumeration<SearchModifierCode>> modifier; 992 993 /** 994 * 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. 995 */ 996 @Child(name = "chain", type = {StringType.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 997 @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." ) 998 protected List<StringType> chain; 999 1000 /** 1001 * Used to define the parts of a composite search parameter. 1002 */ 1003 @Child(name = "component", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1004 @Description(shortDefinition="For Composite resources to define the parts", formalDefinition="Used to define the parts of a composite search parameter." ) 1005 protected List<SearchParameterComponentComponent> component; 1006 1007 private static final long serialVersionUID = -533803519L; 1008 1009 /** 1010 * Constructor 1011 */ 1012 public SearchParameter() { 1013 super(); 1014 } 1015 1016 /** 1017 * Constructor 1018 */ 1019 public SearchParameter(UriType url, StringType name, Enumeration<PublicationStatus> status, MarkdownType description, CodeType code, Enumeration<SearchParamType> type) { 1020 super(); 1021 this.url = url; 1022 this.name = name; 1023 this.status = status; 1024 this.description = description; 1025 this.code = code; 1026 this.type = type; 1027 } 1028 1029 /** 1030 * @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; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1031 */ 1032 public UriType getUrlElement() { 1033 if (this.url == null) 1034 if (Configuration.errorOnAutoCreate()) 1035 throw new Error("Attempt to auto-create SearchParameter.url"); 1036 else if (Configuration.doAutoCreate()) 1037 this.url = new UriType(); // bb 1038 return this.url; 1039 } 1040 1041 public boolean hasUrlElement() { 1042 return this.url != null && !this.url.isEmpty(); 1043 } 1044 1045 public boolean hasUrl() { 1046 return this.url != null && !this.url.isEmpty(); 1047 } 1048 1049 /** 1050 * @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; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1051 */ 1052 public SearchParameter setUrlElement(UriType value) { 1053 this.url = value; 1054 return this; 1055 } 1056 1057 /** 1058 * @return An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers. 1059 */ 1060 public String getUrl() { 1061 return this.url == null ? null : this.url.getValue(); 1062 } 1063 1064 /** 1065 * @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; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers. 1066 */ 1067 public SearchParameter setUrl(String value) { 1068 if (this.url == null) 1069 this.url = new UriType(); 1070 this.url.setValue(value); 1071 return this; 1072 } 1073 1074 /** 1075 * @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 1076 */ 1077 public StringType getVersionElement() { 1078 if (this.version == null) 1079 if (Configuration.errorOnAutoCreate()) 1080 throw new Error("Attempt to auto-create SearchParameter.version"); 1081 else if (Configuration.doAutoCreate()) 1082 this.version = new StringType(); // bb 1083 return this.version; 1084 } 1085 1086 public boolean hasVersionElement() { 1087 return this.version != null && !this.version.isEmpty(); 1088 } 1089 1090 public boolean hasVersion() { 1091 return this.version != null && !this.version.isEmpty(); 1092 } 1093 1094 /** 1095 * @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 1096 */ 1097 public SearchParameter setVersionElement(StringType value) { 1098 this.version = value; 1099 return this; 1100 } 1101 1102 /** 1103 * @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. 1104 */ 1105 public String getVersion() { 1106 return this.version == null ? null : this.version.getValue(); 1107 } 1108 1109 /** 1110 * @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. 1111 */ 1112 public SearchParameter setVersion(String value) { 1113 if (Utilities.noString(value)) 1114 this.version = null; 1115 else { 1116 if (this.version == null) 1117 this.version = new StringType(); 1118 this.version.setValue(value); 1119 } 1120 return this; 1121 } 1122 1123 /** 1124 * @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 1125 */ 1126 public StringType getNameElement() { 1127 if (this.name == null) 1128 if (Configuration.errorOnAutoCreate()) 1129 throw new Error("Attempt to auto-create SearchParameter.name"); 1130 else if (Configuration.doAutoCreate()) 1131 this.name = new StringType(); // bb 1132 return this.name; 1133 } 1134 1135 public boolean hasNameElement() { 1136 return this.name != null && !this.name.isEmpty(); 1137 } 1138 1139 public boolean hasName() { 1140 return this.name != null && !this.name.isEmpty(); 1141 } 1142 1143 /** 1144 * @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 1145 */ 1146 public SearchParameter setNameElement(StringType value) { 1147 this.name = value; 1148 return this; 1149 } 1150 1151 /** 1152 * @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. 1153 */ 1154 public String getName() { 1155 return this.name == null ? null : this.name.getValue(); 1156 } 1157 1158 /** 1159 * @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. 1160 */ 1161 public SearchParameter setName(String value) { 1162 if (this.name == null) 1163 this.name = new StringType(); 1164 this.name.setValue(value); 1165 return this; 1166 } 1167 1168 /** 1169 * @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 1170 */ 1171 public CanonicalType getDerivedFromElement() { 1172 if (this.derivedFrom == null) 1173 if (Configuration.errorOnAutoCreate()) 1174 throw new Error("Attempt to auto-create SearchParameter.derivedFrom"); 1175 else if (Configuration.doAutoCreate()) 1176 this.derivedFrom = new CanonicalType(); // bb 1177 return this.derivedFrom; 1178 } 1179 1180 public boolean hasDerivedFromElement() { 1181 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1182 } 1183 1184 public boolean hasDerivedFrom() { 1185 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1186 } 1187 1188 /** 1189 * @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 1190 */ 1191 public SearchParameter setDerivedFromElement(CanonicalType value) { 1192 this.derivedFrom = value; 1193 return this; 1194 } 1195 1196 /** 1197 * @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. 1198 */ 1199 public String getDerivedFrom() { 1200 return this.derivedFrom == null ? null : this.derivedFrom.getValue(); 1201 } 1202 1203 /** 1204 * @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. 1205 */ 1206 public SearchParameter setDerivedFrom(String value) { 1207 if (Utilities.noString(value)) 1208 this.derivedFrom = null; 1209 else { 1210 if (this.derivedFrom == null) 1211 this.derivedFrom = new CanonicalType(); 1212 this.derivedFrom.setValue(value); 1213 } 1214 return this; 1215 } 1216 1217 /** 1218 * @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 1219 */ 1220 public Enumeration<PublicationStatus> getStatusElement() { 1221 if (this.status == null) 1222 if (Configuration.errorOnAutoCreate()) 1223 throw new Error("Attempt to auto-create SearchParameter.status"); 1224 else if (Configuration.doAutoCreate()) 1225 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 1226 return this.status; 1227 } 1228 1229 public boolean hasStatusElement() { 1230 return this.status != null && !this.status.isEmpty(); 1231 } 1232 1233 public boolean hasStatus() { 1234 return this.status != null && !this.status.isEmpty(); 1235 } 1236 1237 /** 1238 * @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 1239 */ 1240 public SearchParameter setStatusElement(Enumeration<PublicationStatus> value) { 1241 this.status = value; 1242 return this; 1243 } 1244 1245 /** 1246 * @return The status of this search parameter. Enables tracking the life-cycle of the content. 1247 */ 1248 public PublicationStatus getStatus() { 1249 return this.status == null ? null : this.status.getValue(); 1250 } 1251 1252 /** 1253 * @param value The status of this search parameter. Enables tracking the life-cycle of the content. 1254 */ 1255 public SearchParameter setStatus(PublicationStatus value) { 1256 if (this.status == null) 1257 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 1258 this.status.setValue(value); 1259 return this; 1260 } 1261 1262 /** 1263 * @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 1264 */ 1265 public BooleanType getExperimentalElement() { 1266 if (this.experimental == null) 1267 if (Configuration.errorOnAutoCreate()) 1268 throw new Error("Attempt to auto-create SearchParameter.experimental"); 1269 else if (Configuration.doAutoCreate()) 1270 this.experimental = new BooleanType(); // bb 1271 return this.experimental; 1272 } 1273 1274 public boolean hasExperimentalElement() { 1275 return this.experimental != null && !this.experimental.isEmpty(); 1276 } 1277 1278 public boolean hasExperimental() { 1279 return this.experimental != null && !this.experimental.isEmpty(); 1280 } 1281 1282 /** 1283 * @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 1284 */ 1285 public SearchParameter setExperimentalElement(BooleanType value) { 1286 this.experimental = value; 1287 return this; 1288 } 1289 1290 /** 1291 * @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. 1292 */ 1293 public boolean getExperimental() { 1294 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 1295 } 1296 1297 /** 1298 * @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. 1299 */ 1300 public SearchParameter setExperimental(boolean value) { 1301 if (this.experimental == null) 1302 this.experimental = new BooleanType(); 1303 this.experimental.setValue(value); 1304 return this; 1305 } 1306 1307 /** 1308 * @return {@link #date} (The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1309 */ 1310 public DateTimeType getDateElement() { 1311 if (this.date == null) 1312 if (Configuration.errorOnAutoCreate()) 1313 throw new Error("Attempt to auto-create SearchParameter.date"); 1314 else if (Configuration.doAutoCreate()) 1315 this.date = new DateTimeType(); // bb 1316 return this.date; 1317 } 1318 1319 public boolean hasDateElement() { 1320 return this.date != null && !this.date.isEmpty(); 1321 } 1322 1323 public boolean hasDate() { 1324 return this.date != null && !this.date.isEmpty(); 1325 } 1326 1327 /** 1328 * @param value {@link #date} (The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1329 */ 1330 public SearchParameter setDateElement(DateTimeType value) { 1331 this.date = value; 1332 return this; 1333 } 1334 1335 /** 1336 * @return The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes. 1337 */ 1338 public Date getDate() { 1339 return this.date == null ? null : this.date.getValue(); 1340 } 1341 1342 /** 1343 * @param value The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes. 1344 */ 1345 public SearchParameter setDate(Date value) { 1346 if (value == null) 1347 this.date = null; 1348 else { 1349 if (this.date == null) 1350 this.date = new DateTimeType(); 1351 this.date.setValue(value); 1352 } 1353 return this; 1354 } 1355 1356 /** 1357 * @return {@link #publisher} (The name of the organization or individual that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1358 */ 1359 public StringType getPublisherElement() { 1360 if (this.publisher == null) 1361 if (Configuration.errorOnAutoCreate()) 1362 throw new Error("Attempt to auto-create SearchParameter.publisher"); 1363 else if (Configuration.doAutoCreate()) 1364 this.publisher = new StringType(); // bb 1365 return this.publisher; 1366 } 1367 1368 public boolean hasPublisherElement() { 1369 return this.publisher != null && !this.publisher.isEmpty(); 1370 } 1371 1372 public boolean hasPublisher() { 1373 return this.publisher != null && !this.publisher.isEmpty(); 1374 } 1375 1376 /** 1377 * @param value {@link #publisher} (The name of the organization or individual that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1378 */ 1379 public SearchParameter setPublisherElement(StringType value) { 1380 this.publisher = value; 1381 return this; 1382 } 1383 1384 /** 1385 * @return The name of the organization or individual that published the search parameter. 1386 */ 1387 public String getPublisher() { 1388 return this.publisher == null ? null : this.publisher.getValue(); 1389 } 1390 1391 /** 1392 * @param value The name of the organization or individual that published the search parameter. 1393 */ 1394 public SearchParameter setPublisher(String value) { 1395 if (Utilities.noString(value)) 1396 this.publisher = null; 1397 else { 1398 if (this.publisher == null) 1399 this.publisher = new StringType(); 1400 this.publisher.setValue(value); 1401 } 1402 return this; 1403 } 1404 1405 /** 1406 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 1407 */ 1408 public List<ContactDetail> getContact() { 1409 if (this.contact == null) 1410 this.contact = new ArrayList<ContactDetail>(); 1411 return this.contact; 1412 } 1413 1414 /** 1415 * @return Returns a reference to <code>this</code> for easy method chaining 1416 */ 1417 public SearchParameter setContact(List<ContactDetail> theContact) { 1418 this.contact = theContact; 1419 return this; 1420 } 1421 1422 public boolean hasContact() { 1423 if (this.contact == null) 1424 return false; 1425 for (ContactDetail item : this.contact) 1426 if (!item.isEmpty()) 1427 return true; 1428 return false; 1429 } 1430 1431 public ContactDetail addContact() { //3 1432 ContactDetail t = new ContactDetail(); 1433 if (this.contact == null) 1434 this.contact = new ArrayList<ContactDetail>(); 1435 this.contact.add(t); 1436 return t; 1437 } 1438 1439 public SearchParameter addContact(ContactDetail t) { //3 1440 if (t == null) 1441 return this; 1442 if (this.contact == null) 1443 this.contact = new ArrayList<ContactDetail>(); 1444 this.contact.add(t); 1445 return this; 1446 } 1447 1448 /** 1449 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1450 */ 1451 public ContactDetail getContactFirstRep() { 1452 if (getContact().isEmpty()) { 1453 addContact(); 1454 } 1455 return getContact().get(0); 1456 } 1457 1458 /** 1459 * @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 1460 */ 1461 public MarkdownType getDescriptionElement() { 1462 if (this.description == null) 1463 if (Configuration.errorOnAutoCreate()) 1464 throw new Error("Attempt to auto-create SearchParameter.description"); 1465 else if (Configuration.doAutoCreate()) 1466 this.description = new MarkdownType(); // bb 1467 return this.description; 1468 } 1469 1470 public boolean hasDescriptionElement() { 1471 return this.description != null && !this.description.isEmpty(); 1472 } 1473 1474 public boolean hasDescription() { 1475 return this.description != null && !this.description.isEmpty(); 1476 } 1477 1478 /** 1479 * @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 1480 */ 1481 public SearchParameter setDescriptionElement(MarkdownType value) { 1482 this.description = value; 1483 return this; 1484 } 1485 1486 /** 1487 * @return A free text natural language description of the search parameter from a consumer's perspective. and how it used. 1488 */ 1489 public String getDescription() { 1490 return this.description == null ? null : this.description.getValue(); 1491 } 1492 1493 /** 1494 * @param value A free text natural language description of the search parameter from a consumer's perspective. and how it used. 1495 */ 1496 public SearchParameter setDescription(String value) { 1497 if (this.description == null) 1498 this.description = new MarkdownType(); 1499 this.description.setValue(value); 1500 return this; 1501 } 1502 1503 /** 1504 * @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.) 1505 */ 1506 public List<UsageContext> getUseContext() { 1507 if (this.useContext == null) 1508 this.useContext = new ArrayList<UsageContext>(); 1509 return this.useContext; 1510 } 1511 1512 /** 1513 * @return Returns a reference to <code>this</code> for easy method chaining 1514 */ 1515 public SearchParameter setUseContext(List<UsageContext> theUseContext) { 1516 this.useContext = theUseContext; 1517 return this; 1518 } 1519 1520 public boolean hasUseContext() { 1521 if (this.useContext == null) 1522 return false; 1523 for (UsageContext item : this.useContext) 1524 if (!item.isEmpty()) 1525 return true; 1526 return false; 1527 } 1528 1529 public UsageContext addUseContext() { //3 1530 UsageContext t = new UsageContext(); 1531 if (this.useContext == null) 1532 this.useContext = new ArrayList<UsageContext>(); 1533 this.useContext.add(t); 1534 return t; 1535 } 1536 1537 public SearchParameter addUseContext(UsageContext t) { //3 1538 if (t == null) 1539 return this; 1540 if (this.useContext == null) 1541 this.useContext = new ArrayList<UsageContext>(); 1542 this.useContext.add(t); 1543 return this; 1544 } 1545 1546 /** 1547 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 1548 */ 1549 public UsageContext getUseContextFirstRep() { 1550 if (getUseContext().isEmpty()) { 1551 addUseContext(); 1552 } 1553 return getUseContext().get(0); 1554 } 1555 1556 /** 1557 * @return {@link #jurisdiction} (A legal or geographic region in which the search parameter is intended to be used.) 1558 */ 1559 public List<CodeableConcept> getJurisdiction() { 1560 if (this.jurisdiction == null) 1561 this.jurisdiction = new ArrayList<CodeableConcept>(); 1562 return this.jurisdiction; 1563 } 1564 1565 /** 1566 * @return Returns a reference to <code>this</code> for easy method chaining 1567 */ 1568 public SearchParameter setJurisdiction(List<CodeableConcept> theJurisdiction) { 1569 this.jurisdiction = theJurisdiction; 1570 return this; 1571 } 1572 1573 public boolean hasJurisdiction() { 1574 if (this.jurisdiction == null) 1575 return false; 1576 for (CodeableConcept item : this.jurisdiction) 1577 if (!item.isEmpty()) 1578 return true; 1579 return false; 1580 } 1581 1582 public CodeableConcept addJurisdiction() { //3 1583 CodeableConcept t = new CodeableConcept(); 1584 if (this.jurisdiction == null) 1585 this.jurisdiction = new ArrayList<CodeableConcept>(); 1586 this.jurisdiction.add(t); 1587 return t; 1588 } 1589 1590 public SearchParameter addJurisdiction(CodeableConcept t) { //3 1591 if (t == null) 1592 return this; 1593 if (this.jurisdiction == null) 1594 this.jurisdiction = new ArrayList<CodeableConcept>(); 1595 this.jurisdiction.add(t); 1596 return this; 1597 } 1598 1599 /** 1600 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1601 */ 1602 public CodeableConcept getJurisdictionFirstRep() { 1603 if (getJurisdiction().isEmpty()) { 1604 addJurisdiction(); 1605 } 1606 return getJurisdiction().get(0); 1607 } 1608 1609 /** 1610 * @return {@link #purpose} (Explanation 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 1611 */ 1612 public MarkdownType getPurposeElement() { 1613 if (this.purpose == null) 1614 if (Configuration.errorOnAutoCreate()) 1615 throw new Error("Attempt to auto-create SearchParameter.purpose"); 1616 else if (Configuration.doAutoCreate()) 1617 this.purpose = new MarkdownType(); // bb 1618 return this.purpose; 1619 } 1620 1621 public boolean hasPurposeElement() { 1622 return this.purpose != null && !this.purpose.isEmpty(); 1623 } 1624 1625 public boolean hasPurpose() { 1626 return this.purpose != null && !this.purpose.isEmpty(); 1627 } 1628 1629 /** 1630 * @param value {@link #purpose} (Explanation 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 1631 */ 1632 public SearchParameter setPurposeElement(MarkdownType value) { 1633 this.purpose = value; 1634 return this; 1635 } 1636 1637 /** 1638 * @return Explanation of why this search parameter is needed and why it has been designed as it has. 1639 */ 1640 public String getPurpose() { 1641 return this.purpose == null ? null : this.purpose.getValue(); 1642 } 1643 1644 /** 1645 * @param value Explanation of why this search parameter is needed and why it has been designed as it has. 1646 */ 1647 public SearchParameter setPurpose(String value) { 1648 if (value == null) 1649 this.purpose = null; 1650 else { 1651 if (this.purpose == null) 1652 this.purpose = new MarkdownType(); 1653 this.purpose.setValue(value); 1654 } 1655 return this; 1656 } 1657 1658 /** 1659 * @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 1660 */ 1661 public CodeType getCodeElement() { 1662 if (this.code == null) 1663 if (Configuration.errorOnAutoCreate()) 1664 throw new Error("Attempt to auto-create SearchParameter.code"); 1665 else if (Configuration.doAutoCreate()) 1666 this.code = new CodeType(); // bb 1667 return this.code; 1668 } 1669 1670 public boolean hasCodeElement() { 1671 return this.code != null && !this.code.isEmpty(); 1672 } 1673 1674 public boolean hasCode() { 1675 return this.code != null && !this.code.isEmpty(); 1676 } 1677 1678 /** 1679 * @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 1680 */ 1681 public SearchParameter setCodeElement(CodeType value) { 1682 this.code = value; 1683 return this; 1684 } 1685 1686 /** 1687 * @return The code used in the URL or the parameter name in a parameters resource for this search parameter. 1688 */ 1689 public String getCode() { 1690 return this.code == null ? null : this.code.getValue(); 1691 } 1692 1693 /** 1694 * @param value The code used in the URL or the parameter name in a parameters resource for this search parameter. 1695 */ 1696 public SearchParameter setCode(String value) { 1697 if (this.code == null) 1698 this.code = new CodeType(); 1699 this.code.setValue(value); 1700 return this; 1701 } 1702 1703 /** 1704 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1705 */ 1706 public List<CodeType> getBase() { 1707 if (this.base == null) 1708 this.base = new ArrayList<CodeType>(); 1709 return this.base; 1710 } 1711 1712 /** 1713 * @return Returns a reference to <code>this</code> for easy method chaining 1714 */ 1715 public SearchParameter setBase(List<CodeType> theBase) { 1716 this.base = theBase; 1717 return this; 1718 } 1719 1720 public boolean hasBase() { 1721 if (this.base == null) 1722 return false; 1723 for (CodeType item : this.base) 1724 if (!item.isEmpty()) 1725 return true; 1726 return false; 1727 } 1728 1729 /** 1730 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1731 */ 1732 public CodeType addBaseElement() {//2 1733 CodeType t = new CodeType(); 1734 if (this.base == null) 1735 this.base = new ArrayList<CodeType>(); 1736 this.base.add(t); 1737 return t; 1738 } 1739 1740 /** 1741 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1742 */ 1743 public SearchParameter addBase(String value) { //1 1744 CodeType t = new CodeType(); 1745 t.setValue(value); 1746 if (this.base == null) 1747 this.base = new ArrayList<CodeType>(); 1748 this.base.add(t); 1749 return this; 1750 } 1751 1752 /** 1753 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1754 */ 1755 public boolean hasBase(String value) { 1756 if (this.base == null) 1757 return false; 1758 for (CodeType v : this.base) 1759 if (v.getValue().equals(value)) // code 1760 return true; 1761 return false; 1762 } 1763 1764 /** 1765 * @return {@link #type} (The type of value that a search parameter may contain, 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 1766 */ 1767 public Enumeration<SearchParamType> getTypeElement() { 1768 if (this.type == null) 1769 if (Configuration.errorOnAutoCreate()) 1770 throw new Error("Attempt to auto-create SearchParameter.type"); 1771 else if (Configuration.doAutoCreate()) 1772 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); // bb 1773 return this.type; 1774 } 1775 1776 public boolean hasTypeElement() { 1777 return this.type != null && !this.type.isEmpty(); 1778 } 1779 1780 public boolean hasType() { 1781 return this.type != null && !this.type.isEmpty(); 1782 } 1783 1784 /** 1785 * @param value {@link #type} (The type of value that a search parameter may contain, 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 1786 */ 1787 public SearchParameter setTypeElement(Enumeration<SearchParamType> value) { 1788 this.type = value; 1789 return this; 1790 } 1791 1792 /** 1793 * @return The type of value that a search parameter may contain, and how the content is interpreted. 1794 */ 1795 public SearchParamType getType() { 1796 return this.type == null ? null : this.type.getValue(); 1797 } 1798 1799 /** 1800 * @param value The type of value that a search parameter may contain, and how the content is interpreted. 1801 */ 1802 public SearchParameter setType(SearchParamType value) { 1803 if (this.type == null) 1804 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); 1805 this.type.setValue(value); 1806 return this; 1807 } 1808 1809 /** 1810 * @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 1811 */ 1812 public StringType getExpressionElement() { 1813 if (this.expression == null) 1814 if (Configuration.errorOnAutoCreate()) 1815 throw new Error("Attempt to auto-create SearchParameter.expression"); 1816 else if (Configuration.doAutoCreate()) 1817 this.expression = new StringType(); // bb 1818 return this.expression; 1819 } 1820 1821 public boolean hasExpressionElement() { 1822 return this.expression != null && !this.expression.isEmpty(); 1823 } 1824 1825 public boolean hasExpression() { 1826 return this.expression != null && !this.expression.isEmpty(); 1827 } 1828 1829 /** 1830 * @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 1831 */ 1832 public SearchParameter setExpressionElement(StringType value) { 1833 this.expression = value; 1834 return this; 1835 } 1836 1837 /** 1838 * @return A FHIRPath expression that returns a set of elements for the search parameter. 1839 */ 1840 public String getExpression() { 1841 return this.expression == null ? null : this.expression.getValue(); 1842 } 1843 1844 /** 1845 * @param value A FHIRPath expression that returns a set of elements for the search parameter. 1846 */ 1847 public SearchParameter setExpression(String value) { 1848 if (Utilities.noString(value)) 1849 this.expression = null; 1850 else { 1851 if (this.expression == null) 1852 this.expression = new StringType(); 1853 this.expression.setValue(value); 1854 } 1855 return this; 1856 } 1857 1858 /** 1859 * @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 1860 */ 1861 public StringType getXpathElement() { 1862 if (this.xpath == null) 1863 if (Configuration.errorOnAutoCreate()) 1864 throw new Error("Attempt to auto-create SearchParameter.xpath"); 1865 else if (Configuration.doAutoCreate()) 1866 this.xpath = new StringType(); // bb 1867 return this.xpath; 1868 } 1869 1870 public boolean hasXpathElement() { 1871 return this.xpath != null && !this.xpath.isEmpty(); 1872 } 1873 1874 public boolean hasXpath() { 1875 return this.xpath != null && !this.xpath.isEmpty(); 1876 } 1877 1878 /** 1879 * @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 1880 */ 1881 public SearchParameter setXpathElement(StringType value) { 1882 this.xpath = value; 1883 return this; 1884 } 1885 1886 /** 1887 * @return An XPath expression that returns a set of elements for the search parameter. 1888 */ 1889 public String getXpath() { 1890 return this.xpath == null ? null : this.xpath.getValue(); 1891 } 1892 1893 /** 1894 * @param value An XPath expression that returns a set of elements for the search parameter. 1895 */ 1896 public SearchParameter setXpath(String value) { 1897 if (Utilities.noString(value)) 1898 this.xpath = null; 1899 else { 1900 if (this.xpath == null) 1901 this.xpath = new StringType(); 1902 this.xpath.setValue(value); 1903 } 1904 return this; 1905 } 1906 1907 /** 1908 * @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 1909 */ 1910 public Enumeration<XPathUsageType> getXpathUsageElement() { 1911 if (this.xpathUsage == null) 1912 if (Configuration.errorOnAutoCreate()) 1913 throw new Error("Attempt to auto-create SearchParameter.xpathUsage"); 1914 else if (Configuration.doAutoCreate()) 1915 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); // bb 1916 return this.xpathUsage; 1917 } 1918 1919 public boolean hasXpathUsageElement() { 1920 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1921 } 1922 1923 public boolean hasXpathUsage() { 1924 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1925 } 1926 1927 /** 1928 * @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 1929 */ 1930 public SearchParameter setXpathUsageElement(Enumeration<XPathUsageType> value) { 1931 this.xpathUsage = value; 1932 return this; 1933 } 1934 1935 /** 1936 * @return How the search parameter relates to the set of elements returned by evaluating the xpath query. 1937 */ 1938 public XPathUsageType getXpathUsage() { 1939 return this.xpathUsage == null ? null : this.xpathUsage.getValue(); 1940 } 1941 1942 /** 1943 * @param value How the search parameter relates to the set of elements returned by evaluating the xpath query. 1944 */ 1945 public SearchParameter setXpathUsage(XPathUsageType value) { 1946 if (value == null) 1947 this.xpathUsage = null; 1948 else { 1949 if (this.xpathUsage == null) 1950 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); 1951 this.xpathUsage.setValue(value); 1952 } 1953 return this; 1954 } 1955 1956 /** 1957 * @return {@link #target} (Types of resource (if a resource is referenced).) 1958 */ 1959 public List<CodeType> getTarget() { 1960 if (this.target == null) 1961 this.target = new ArrayList<CodeType>(); 1962 return this.target; 1963 } 1964 1965 /** 1966 * @return Returns a reference to <code>this</code> for easy method chaining 1967 */ 1968 public SearchParameter setTarget(List<CodeType> theTarget) { 1969 this.target = theTarget; 1970 return this; 1971 } 1972 1973 public boolean hasTarget() { 1974 if (this.target == null) 1975 return false; 1976 for (CodeType item : this.target) 1977 if (!item.isEmpty()) 1978 return true; 1979 return false; 1980 } 1981 1982 /** 1983 * @return {@link #target} (Types of resource (if a resource is referenced).) 1984 */ 1985 public CodeType addTargetElement() {//2 1986 CodeType t = new CodeType(); 1987 if (this.target == null) 1988 this.target = new ArrayList<CodeType>(); 1989 this.target.add(t); 1990 return t; 1991 } 1992 1993 /** 1994 * @param value {@link #target} (Types of resource (if a resource is referenced).) 1995 */ 1996 public SearchParameter addTarget(String value) { //1 1997 CodeType t = new CodeType(); 1998 t.setValue(value); 1999 if (this.target == null) 2000 this.target = new ArrayList<CodeType>(); 2001 this.target.add(t); 2002 return this; 2003 } 2004 2005 /** 2006 * @param value {@link #target} (Types of resource (if a resource is referenced).) 2007 */ 2008 public boolean hasTarget(String value) { 2009 if (this.target == null) 2010 return false; 2011 for (CodeType v : this.target) 2012 if (v.getValue().equals(value)) // code 2013 return true; 2014 return false; 2015 } 2016 2017 /** 2018 * @return {@link #multipleOr} (Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.). This is the underlying object with id, value and extensions. The accessor "getMultipleOr" gives direct access to the value 2019 */ 2020 public BooleanType getMultipleOrElement() { 2021 if (this.multipleOr == null) 2022 if (Configuration.errorOnAutoCreate()) 2023 throw new Error("Attempt to auto-create SearchParameter.multipleOr"); 2024 else if (Configuration.doAutoCreate()) 2025 this.multipleOr = new BooleanType(); // bb 2026 return this.multipleOr; 2027 } 2028 2029 public boolean hasMultipleOrElement() { 2030 return this.multipleOr != null && !this.multipleOr.isEmpty(); 2031 } 2032 2033 public boolean hasMultipleOr() { 2034 return this.multipleOr != null && !this.multipleOr.isEmpty(); 2035 } 2036 2037 /** 2038 * @param value {@link #multipleOr} (Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.). This is the underlying object with id, value and extensions. The accessor "getMultipleOr" gives direct access to the value 2039 */ 2040 public SearchParameter setMultipleOrElement(BooleanType value) { 2041 this.multipleOr = value; 2042 return this; 2043 } 2044 2045 /** 2046 * @return Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 2047 */ 2048 public boolean getMultipleOr() { 2049 return this.multipleOr == null || this.multipleOr.isEmpty() ? false : this.multipleOr.getValue(); 2050 } 2051 2052 /** 2053 * @param value Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 2054 */ 2055 public SearchParameter setMultipleOr(boolean value) { 2056 if (this.multipleOr == null) 2057 this.multipleOr = new BooleanType(); 2058 this.multipleOr.setValue(value); 2059 return this; 2060 } 2061 2062 /** 2063 * @return {@link #multipleAnd} (Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.). This is the underlying object with id, value and extensions. The accessor "getMultipleAnd" gives direct access to the value 2064 */ 2065 public BooleanType getMultipleAndElement() { 2066 if (this.multipleAnd == null) 2067 if (Configuration.errorOnAutoCreate()) 2068 throw new Error("Attempt to auto-create SearchParameter.multipleAnd"); 2069 else if (Configuration.doAutoCreate()) 2070 this.multipleAnd = new BooleanType(); // bb 2071 return this.multipleAnd; 2072 } 2073 2074 public boolean hasMultipleAndElement() { 2075 return this.multipleAnd != null && !this.multipleAnd.isEmpty(); 2076 } 2077 2078 public boolean hasMultipleAnd() { 2079 return this.multipleAnd != null && !this.multipleAnd.isEmpty(); 2080 } 2081 2082 /** 2083 * @param value {@link #multipleAnd} (Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.). This is the underlying object with id, value and extensions. The accessor "getMultipleAnd" gives direct access to the value 2084 */ 2085 public SearchParameter setMultipleAndElement(BooleanType value) { 2086 this.multipleAnd = value; 2087 return this; 2088 } 2089 2090 /** 2091 * @return Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 2092 */ 2093 public boolean getMultipleAnd() { 2094 return this.multipleAnd == null || this.multipleAnd.isEmpty() ? false : this.multipleAnd.getValue(); 2095 } 2096 2097 /** 2098 * @param value Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 2099 */ 2100 public SearchParameter setMultipleAnd(boolean value) { 2101 if (this.multipleAnd == null) 2102 this.multipleAnd = new BooleanType(); 2103 this.multipleAnd.setValue(value); 2104 return this; 2105 } 2106 2107 /** 2108 * @return {@link #comparator} (Comparators supported for the search parameter.) 2109 */ 2110 public List<Enumeration<SearchComparator>> getComparator() { 2111 if (this.comparator == null) 2112 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2113 return this.comparator; 2114 } 2115 2116 /** 2117 * @return Returns a reference to <code>this</code> for easy method chaining 2118 */ 2119 public SearchParameter setComparator(List<Enumeration<SearchComparator>> theComparator) { 2120 this.comparator = theComparator; 2121 return this; 2122 } 2123 2124 public boolean hasComparator() { 2125 if (this.comparator == null) 2126 return false; 2127 for (Enumeration<SearchComparator> item : this.comparator) 2128 if (!item.isEmpty()) 2129 return true; 2130 return false; 2131 } 2132 2133 /** 2134 * @return {@link #comparator} (Comparators supported for the search parameter.) 2135 */ 2136 public Enumeration<SearchComparator> addComparatorElement() {//2 2137 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 2138 if (this.comparator == null) 2139 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2140 this.comparator.add(t); 2141 return t; 2142 } 2143 2144 /** 2145 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2146 */ 2147 public SearchParameter addComparator(SearchComparator value) { //1 2148 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 2149 t.setValue(value); 2150 if (this.comparator == null) 2151 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2152 this.comparator.add(t); 2153 return this; 2154 } 2155 2156 /** 2157 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2158 */ 2159 public boolean hasComparator(SearchComparator value) { 2160 if (this.comparator == null) 2161 return false; 2162 for (Enumeration<SearchComparator> v : this.comparator) 2163 if (v.getValue().equals(value)) // code 2164 return true; 2165 return false; 2166 } 2167 2168 /** 2169 * @return {@link #modifier} (A modifier supported for the search parameter.) 2170 */ 2171 public List<Enumeration<SearchModifierCode>> getModifier() { 2172 if (this.modifier == null) 2173 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2174 return this.modifier; 2175 } 2176 2177 /** 2178 * @return Returns a reference to <code>this</code> for easy method chaining 2179 */ 2180 public SearchParameter setModifier(List<Enumeration<SearchModifierCode>> theModifier) { 2181 this.modifier = theModifier; 2182 return this; 2183 } 2184 2185 public boolean hasModifier() { 2186 if (this.modifier == null) 2187 return false; 2188 for (Enumeration<SearchModifierCode> item : this.modifier) 2189 if (!item.isEmpty()) 2190 return true; 2191 return false; 2192 } 2193 2194 /** 2195 * @return {@link #modifier} (A modifier supported for the search parameter.) 2196 */ 2197 public Enumeration<SearchModifierCode> addModifierElement() {//2 2198 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2199 if (this.modifier == null) 2200 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2201 this.modifier.add(t); 2202 return t; 2203 } 2204 2205 /** 2206 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2207 */ 2208 public SearchParameter addModifier(SearchModifierCode value) { //1 2209 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2210 t.setValue(value); 2211 if (this.modifier == null) 2212 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2213 this.modifier.add(t); 2214 return this; 2215 } 2216 2217 /** 2218 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2219 */ 2220 public boolean hasModifier(SearchModifierCode value) { 2221 if (this.modifier == null) 2222 return false; 2223 for (Enumeration<SearchModifierCode> v : this.modifier) 2224 if (v.getValue().equals(value)) // code 2225 return true; 2226 return false; 2227 } 2228 2229 /** 2230 * @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.) 2231 */ 2232 public List<StringType> getChain() { 2233 if (this.chain == null) 2234 this.chain = new ArrayList<StringType>(); 2235 return this.chain; 2236 } 2237 2238 /** 2239 * @return Returns a reference to <code>this</code> for easy method chaining 2240 */ 2241 public SearchParameter setChain(List<StringType> theChain) { 2242 this.chain = theChain; 2243 return this; 2244 } 2245 2246 public boolean hasChain() { 2247 if (this.chain == null) 2248 return false; 2249 for (StringType item : this.chain) 2250 if (!item.isEmpty()) 2251 return true; 2252 return false; 2253 } 2254 2255 /** 2256 * @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.) 2257 */ 2258 public StringType addChainElement() {//2 2259 StringType t = new StringType(); 2260 if (this.chain == null) 2261 this.chain = new ArrayList<StringType>(); 2262 this.chain.add(t); 2263 return t; 2264 } 2265 2266 /** 2267 * @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.) 2268 */ 2269 public SearchParameter addChain(String value) { //1 2270 StringType t = new StringType(); 2271 t.setValue(value); 2272 if (this.chain == null) 2273 this.chain = new ArrayList<StringType>(); 2274 this.chain.add(t); 2275 return this; 2276 } 2277 2278 /** 2279 * @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.) 2280 */ 2281 public boolean hasChain(String value) { 2282 if (this.chain == null) 2283 return false; 2284 for (StringType v : this.chain) 2285 if (v.getValue().equals(value)) // string 2286 return true; 2287 return false; 2288 } 2289 2290 /** 2291 * @return {@link #component} (Used to define the parts of a composite search parameter.) 2292 */ 2293 public List<SearchParameterComponentComponent> getComponent() { 2294 if (this.component == null) 2295 this.component = new ArrayList<SearchParameterComponentComponent>(); 2296 return this.component; 2297 } 2298 2299 /** 2300 * @return Returns a reference to <code>this</code> for easy method chaining 2301 */ 2302 public SearchParameter setComponent(List<SearchParameterComponentComponent> theComponent) { 2303 this.component = theComponent; 2304 return this; 2305 } 2306 2307 public boolean hasComponent() { 2308 if (this.component == null) 2309 return false; 2310 for (SearchParameterComponentComponent item : this.component) 2311 if (!item.isEmpty()) 2312 return true; 2313 return false; 2314 } 2315 2316 public SearchParameterComponentComponent addComponent() { //3 2317 SearchParameterComponentComponent t = new SearchParameterComponentComponent(); 2318 if (this.component == null) 2319 this.component = new ArrayList<SearchParameterComponentComponent>(); 2320 this.component.add(t); 2321 return t; 2322 } 2323 2324 public SearchParameter addComponent(SearchParameterComponentComponent t) { //3 2325 if (t == null) 2326 return this; 2327 if (this.component == null) 2328 this.component = new ArrayList<SearchParameterComponentComponent>(); 2329 this.component.add(t); 2330 return this; 2331 } 2332 2333 /** 2334 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist 2335 */ 2336 public SearchParameterComponentComponent getComponentFirstRep() { 2337 if (getComponent().isEmpty()) { 2338 addComponent(); 2339 } 2340 return getComponent().get(0); 2341 } 2342 2343 protected void listChildren(List<Property> children) { 2344 super.listChildren(children); 2345 children.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; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.", 0, 1, url)); 2346 children.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, 1, version)); 2347 children.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, 1, name)); 2348 children.add(new Property("derivedFrom", "canonical(SearchParameter)", "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, 1, derivedFrom)); 2349 children.add(new Property("status", "code", "The status of this search parameter. Enables tracking the life-cycle of the content.", 0, 1, status)); 2350 children.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, 1, experimental)); 2351 children.add(new Property("date", "dateTime", "The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.", 0, 1, date)); 2352 children.add(new Property("publisher", "string", "The name of the organization or individual that published the search parameter.", 0, 1, publisher)); 2353 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 2354 children.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, 1, description)); 2355 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate search parameter instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 2356 children.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)); 2357 children.add(new Property("purpose", "markdown", "Explanation of why this search parameter is needed and why it has been designed as it has.", 0, 1, purpose)); 2358 children.add(new Property("code", "code", "The code used in the URL or the parameter name in a parameters resource for this search parameter.", 0, 1, code)); 2359 children.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)); 2360 children.add(new Property("type", "code", "The type of value that a search parameter may contain, and how the content is interpreted.", 0, 1, type)); 2361 children.add(new Property("expression", "string", "A FHIRPath expression that returns a set of elements for the search parameter.", 0, 1, expression)); 2362 children.add(new Property("xpath", "string", "An XPath expression that returns a set of elements for the search parameter.", 0, 1, xpath)); 2363 children.add(new Property("xpathUsage", "code", "How the search parameter relates to the set of elements returned by evaluating the xpath query.", 0, 1, xpathUsage)); 2364 children.add(new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target)); 2365 children.add(new Property("multipleOr", "boolean", "Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.", 0, 1, multipleOr)); 2366 children.add(new Property("multipleAnd", "boolean", "Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.", 0, 1, multipleAnd)); 2367 children.add(new Property("comparator", "code", "Comparators supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, comparator)); 2368 children.add(new Property("modifier", "code", "A modifier supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, modifier)); 2369 children.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)); 2370 children.add(new Property("component", "", "Used to define the parts of a composite search parameter.", 0, java.lang.Integer.MAX_VALUE, component)); 2371 } 2372 2373 @Override 2374 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2375 switch (_hash) { 2376 case 116079: /*url*/ return 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; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.", 0, 1, url); 2377 case 351608024: /*version*/ return 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, 1, version); 2378 case 3373707: /*name*/ return 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, 1, name); 2379 case 1077922663: /*derivedFrom*/ return new Property("derivedFrom", "canonical(SearchParameter)", "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, 1, derivedFrom); 2380 case -892481550: /*status*/ return new Property("status", "code", "The status of this search parameter. Enables tracking the life-cycle of the content.", 0, 1, status); 2381 case -404562712: /*experimental*/ return 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, 1, experimental); 2382 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the search parameter was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.", 0, 1, date); 2383 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the search parameter.", 0, 1, publisher); 2384 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 2385 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the search parameter from a consumer's perspective. and how it used.", 0, 1, description); 2386 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate search parameter instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 2387 case -507075711: /*jurisdiction*/ return 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); 2388 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this search parameter is needed and why it has been designed as it has.", 0, 1, purpose); 2389 case 3059181: /*code*/ return new Property("code", "code", "The code used in the URL or the parameter name in a parameters resource for this search parameter.", 0, 1, code); 2390 case 3016401: /*base*/ return new Property("base", "code", "The base resource type(s) that this search parameter can be used against.", 0, java.lang.Integer.MAX_VALUE, base); 2391 case 3575610: /*type*/ return new Property("type", "code", "The type of value that a search parameter may contain, and how the content is interpreted.", 0, 1, type); 2392 case -1795452264: /*expression*/ return new Property("expression", "string", "A FHIRPath expression that returns a set of elements for the search parameter.", 0, 1, expression); 2393 case 114256029: /*xpath*/ return new Property("xpath", "string", "An XPath expression that returns a set of elements for the search parameter.", 0, 1, xpath); 2394 case 1801322244: /*xpathUsage*/ return new Property("xpathUsage", "code", "How the search parameter relates to the set of elements returned by evaluating the xpath query.", 0, 1, xpathUsage); 2395 case -880905839: /*target*/ return new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target); 2396 case 1265069075: /*multipleOr*/ return new Property("multipleOr", "boolean", "Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.", 0, 1, multipleOr); 2397 case 562422183: /*multipleAnd*/ return new Property("multipleAnd", "boolean", "Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.", 0, 1, multipleAnd); 2398 case -844673834: /*comparator*/ return new Property("comparator", "code", "Comparators supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, comparator); 2399 case -615513385: /*modifier*/ return new Property("modifier", "code", "A modifier supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, modifier); 2400 case 94623425: /*chain*/ return 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); 2401 case -1399907075: /*component*/ return new Property("component", "", "Used to define the parts of a composite search parameter.", 0, java.lang.Integer.MAX_VALUE, component); 2402 default: return super.getNamedProperty(_hash, _name, _checkValid); 2403 } 2404 2405 } 2406 2407 @Override 2408 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2409 switch (hash) { 2410 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2411 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2412 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2413 case 1077922663: /*derivedFrom*/ return this.derivedFrom == null ? new Base[0] : new Base[] {this.derivedFrom}; // CanonicalType 2414 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 2415 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2416 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2417 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2418 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2419 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2420 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 2421 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 2422 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 2423 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 2424 case 3016401: /*base*/ return this.base == null ? new Base[0] : this.base.toArray(new Base[this.base.size()]); // CodeType 2425 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<SearchParamType> 2426 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 2427 case 114256029: /*xpath*/ return this.xpath == null ? new Base[0] : new Base[] {this.xpath}; // StringType 2428 case 1801322244: /*xpathUsage*/ return this.xpathUsage == null ? new Base[0] : new Base[] {this.xpathUsage}; // Enumeration<XPathUsageType> 2429 case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // CodeType 2430 case 1265069075: /*multipleOr*/ return this.multipleOr == null ? new Base[0] : new Base[] {this.multipleOr}; // BooleanType 2431 case 562422183: /*multipleAnd*/ return this.multipleAnd == null ? new Base[0] : new Base[] {this.multipleAnd}; // BooleanType 2432 case -844673834: /*comparator*/ return this.comparator == null ? new Base[0] : this.comparator.toArray(new Base[this.comparator.size()]); // Enumeration<SearchComparator> 2433 case -615513385: /*modifier*/ return this.modifier == null ? new Base[0] : this.modifier.toArray(new Base[this.modifier.size()]); // Enumeration<SearchModifierCode> 2434 case 94623425: /*chain*/ return this.chain == null ? new Base[0] : this.chain.toArray(new Base[this.chain.size()]); // StringType 2435 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // SearchParameterComponentComponent 2436 default: return super.getProperty(hash, name, checkValid); 2437 } 2438 2439 } 2440 2441 @Override 2442 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2443 switch (hash) { 2444 case 116079: // url 2445 this.url = castToUri(value); // UriType 2446 return value; 2447 case 351608024: // version 2448 this.version = castToString(value); // StringType 2449 return value; 2450 case 3373707: // name 2451 this.name = castToString(value); // StringType 2452 return value; 2453 case 1077922663: // derivedFrom 2454 this.derivedFrom = castToCanonical(value); // CanonicalType 2455 return value; 2456 case -892481550: // status 2457 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2458 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2459 return value; 2460 case -404562712: // experimental 2461 this.experimental = castToBoolean(value); // BooleanType 2462 return value; 2463 case 3076014: // date 2464 this.date = castToDateTime(value); // DateTimeType 2465 return value; 2466 case 1447404028: // publisher 2467 this.publisher = castToString(value); // StringType 2468 return value; 2469 case 951526432: // contact 2470 this.getContact().add(castToContactDetail(value)); // ContactDetail 2471 return value; 2472 case -1724546052: // description 2473 this.description = castToMarkdown(value); // MarkdownType 2474 return value; 2475 case -669707736: // useContext 2476 this.getUseContext().add(castToUsageContext(value)); // UsageContext 2477 return value; 2478 case -507075711: // jurisdiction 2479 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 2480 return value; 2481 case -220463842: // purpose 2482 this.purpose = castToMarkdown(value); // MarkdownType 2483 return value; 2484 case 3059181: // code 2485 this.code = castToCode(value); // CodeType 2486 return value; 2487 case 3016401: // base 2488 this.getBase().add(castToCode(value)); // CodeType 2489 return value; 2490 case 3575610: // type 2491 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2492 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2493 return value; 2494 case -1795452264: // expression 2495 this.expression = castToString(value); // StringType 2496 return value; 2497 case 114256029: // xpath 2498 this.xpath = castToString(value); // StringType 2499 return value; 2500 case 1801322244: // xpathUsage 2501 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2502 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2503 return value; 2504 case -880905839: // target 2505 this.getTarget().add(castToCode(value)); // CodeType 2506 return value; 2507 case 1265069075: // multipleOr 2508 this.multipleOr = castToBoolean(value); // BooleanType 2509 return value; 2510 case 562422183: // multipleAnd 2511 this.multipleAnd = castToBoolean(value); // BooleanType 2512 return value; 2513 case -844673834: // comparator 2514 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2515 this.getComparator().add((Enumeration) value); // Enumeration<SearchComparator> 2516 return value; 2517 case -615513385: // modifier 2518 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2519 this.getModifier().add((Enumeration) value); // Enumeration<SearchModifierCode> 2520 return value; 2521 case 94623425: // chain 2522 this.getChain().add(castToString(value)); // StringType 2523 return value; 2524 case -1399907075: // component 2525 this.getComponent().add((SearchParameterComponentComponent) value); // SearchParameterComponentComponent 2526 return value; 2527 default: return super.setProperty(hash, name, value); 2528 } 2529 2530 } 2531 2532 @Override 2533 public Base setProperty(String name, Base value) throws FHIRException { 2534 if (name.equals("url")) { 2535 this.url = castToUri(value); // UriType 2536 } else if (name.equals("version")) { 2537 this.version = castToString(value); // StringType 2538 } else if (name.equals("name")) { 2539 this.name = castToString(value); // StringType 2540 } else if (name.equals("derivedFrom")) { 2541 this.derivedFrom = castToCanonical(value); // CanonicalType 2542 } else if (name.equals("status")) { 2543 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2544 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2545 } else if (name.equals("experimental")) { 2546 this.experimental = castToBoolean(value); // BooleanType 2547 } else if (name.equals("date")) { 2548 this.date = castToDateTime(value); // DateTimeType 2549 } else if (name.equals("publisher")) { 2550 this.publisher = castToString(value); // StringType 2551 } else if (name.equals("contact")) { 2552 this.getContact().add(castToContactDetail(value)); 2553 } else if (name.equals("description")) { 2554 this.description = castToMarkdown(value); // MarkdownType 2555 } else if (name.equals("useContext")) { 2556 this.getUseContext().add(castToUsageContext(value)); 2557 } else if (name.equals("jurisdiction")) { 2558 this.getJurisdiction().add(castToCodeableConcept(value)); 2559 } else if (name.equals("purpose")) { 2560 this.purpose = castToMarkdown(value); // MarkdownType 2561 } else if (name.equals("code")) { 2562 this.code = castToCode(value); // CodeType 2563 } else if (name.equals("base")) { 2564 this.getBase().add(castToCode(value)); 2565 } else if (name.equals("type")) { 2566 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2567 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2568 } else if (name.equals("expression")) { 2569 this.expression = castToString(value); // StringType 2570 } else if (name.equals("xpath")) { 2571 this.xpath = castToString(value); // StringType 2572 } else if (name.equals("xpathUsage")) { 2573 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2574 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2575 } else if (name.equals("target")) { 2576 this.getTarget().add(castToCode(value)); 2577 } else if (name.equals("multipleOr")) { 2578 this.multipleOr = castToBoolean(value); // BooleanType 2579 } else if (name.equals("multipleAnd")) { 2580 this.multipleAnd = castToBoolean(value); // BooleanType 2581 } else if (name.equals("comparator")) { 2582 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2583 this.getComparator().add((Enumeration) value); 2584 } else if (name.equals("modifier")) { 2585 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2586 this.getModifier().add((Enumeration) value); 2587 } else if (name.equals("chain")) { 2588 this.getChain().add(castToString(value)); 2589 } else if (name.equals("component")) { 2590 this.getComponent().add((SearchParameterComponentComponent) value); 2591 } else 2592 return super.setProperty(name, value); 2593 return value; 2594 } 2595 2596 @Override 2597 public Base makeProperty(int hash, String name) throws FHIRException { 2598 switch (hash) { 2599 case 116079: return getUrlElement(); 2600 case 351608024: return getVersionElement(); 2601 case 3373707: return getNameElement(); 2602 case 1077922663: return getDerivedFromElement(); 2603 case -892481550: return getStatusElement(); 2604 case -404562712: return getExperimentalElement(); 2605 case 3076014: return getDateElement(); 2606 case 1447404028: return getPublisherElement(); 2607 case 951526432: return addContact(); 2608 case -1724546052: return getDescriptionElement(); 2609 case -669707736: return addUseContext(); 2610 case -507075711: return addJurisdiction(); 2611 case -220463842: return getPurposeElement(); 2612 case 3059181: return getCodeElement(); 2613 case 3016401: return addBaseElement(); 2614 case 3575610: return getTypeElement(); 2615 case -1795452264: return getExpressionElement(); 2616 case 114256029: return getXpathElement(); 2617 case 1801322244: return getXpathUsageElement(); 2618 case -880905839: return addTargetElement(); 2619 case 1265069075: return getMultipleOrElement(); 2620 case 562422183: return getMultipleAndElement(); 2621 case -844673834: return addComparatorElement(); 2622 case -615513385: return addModifierElement(); 2623 case 94623425: return addChainElement(); 2624 case -1399907075: return addComponent(); 2625 default: return super.makeProperty(hash, name); 2626 } 2627 2628 } 2629 2630 @Override 2631 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2632 switch (hash) { 2633 case 116079: /*url*/ return new String[] {"uri"}; 2634 case 351608024: /*version*/ return new String[] {"string"}; 2635 case 3373707: /*name*/ return new String[] {"string"}; 2636 case 1077922663: /*derivedFrom*/ return new String[] {"canonical"}; 2637 case -892481550: /*status*/ return new String[] {"code"}; 2638 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2639 case 3076014: /*date*/ return new String[] {"dateTime"}; 2640 case 1447404028: /*publisher*/ return new String[] {"string"}; 2641 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2642 case -1724546052: /*description*/ return new String[] {"markdown"}; 2643 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2644 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2645 case -220463842: /*purpose*/ return new String[] {"markdown"}; 2646 case 3059181: /*code*/ return new String[] {"code"}; 2647 case 3016401: /*base*/ return new String[] {"code"}; 2648 case 3575610: /*type*/ return new String[] {"code"}; 2649 case -1795452264: /*expression*/ return new String[] {"string"}; 2650 case 114256029: /*xpath*/ return new String[] {"string"}; 2651 case 1801322244: /*xpathUsage*/ return new String[] {"code"}; 2652 case -880905839: /*target*/ return new String[] {"code"}; 2653 case 1265069075: /*multipleOr*/ return new String[] {"boolean"}; 2654 case 562422183: /*multipleAnd*/ return new String[] {"boolean"}; 2655 case -844673834: /*comparator*/ return new String[] {"code"}; 2656 case -615513385: /*modifier*/ return new String[] {"code"}; 2657 case 94623425: /*chain*/ return new String[] {"string"}; 2658 case -1399907075: /*component*/ return new String[] {}; 2659 default: return super.getTypesForProperty(hash, name); 2660 } 2661 2662 } 2663 2664 @Override 2665 public Base addChild(String name) throws FHIRException { 2666 if (name.equals("url")) { 2667 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.url"); 2668 } 2669 else if (name.equals("version")) { 2670 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.version"); 2671 } 2672 else if (name.equals("name")) { 2673 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.name"); 2674 } 2675 else if (name.equals("derivedFrom")) { 2676 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.derivedFrom"); 2677 } 2678 else if (name.equals("status")) { 2679 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.status"); 2680 } 2681 else if (name.equals("experimental")) { 2682 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.experimental"); 2683 } 2684 else if (name.equals("date")) { 2685 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.date"); 2686 } 2687 else if (name.equals("publisher")) { 2688 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.publisher"); 2689 } 2690 else if (name.equals("contact")) { 2691 return addContact(); 2692 } 2693 else if (name.equals("description")) { 2694 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.description"); 2695 } 2696 else if (name.equals("useContext")) { 2697 return addUseContext(); 2698 } 2699 else if (name.equals("jurisdiction")) { 2700 return addJurisdiction(); 2701 } 2702 else if (name.equals("purpose")) { 2703 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.purpose"); 2704 } 2705 else if (name.equals("code")) { 2706 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.code"); 2707 } 2708 else if (name.equals("base")) { 2709 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.base"); 2710 } 2711 else if (name.equals("type")) { 2712 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.type"); 2713 } 2714 else if (name.equals("expression")) { 2715 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 2716 } 2717 else if (name.equals("xpath")) { 2718 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpath"); 2719 } 2720 else if (name.equals("xpathUsage")) { 2721 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpathUsage"); 2722 } 2723 else if (name.equals("target")) { 2724 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.target"); 2725 } 2726 else if (name.equals("multipleOr")) { 2727 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.multipleOr"); 2728 } 2729 else if (name.equals("multipleAnd")) { 2730 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.multipleAnd"); 2731 } 2732 else if (name.equals("comparator")) { 2733 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.comparator"); 2734 } 2735 else if (name.equals("modifier")) { 2736 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.modifier"); 2737 } 2738 else if (name.equals("chain")) { 2739 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.chain"); 2740 } 2741 else if (name.equals("component")) { 2742 return addComponent(); 2743 } 2744 else 2745 return super.addChild(name); 2746 } 2747 2748 public String fhirType() { 2749 return "SearchParameter"; 2750 2751 } 2752 2753 public SearchParameter copy() { 2754 SearchParameter dst = new SearchParameter(); 2755 copyValues(dst); 2756 dst.url = url == null ? null : url.copy(); 2757 dst.version = version == null ? null : version.copy(); 2758 dst.name = name == null ? null : name.copy(); 2759 dst.derivedFrom = derivedFrom == null ? null : derivedFrom.copy(); 2760 dst.status = status == null ? null : status.copy(); 2761 dst.experimental = experimental == null ? null : experimental.copy(); 2762 dst.date = date == null ? null : date.copy(); 2763 dst.publisher = publisher == null ? null : publisher.copy(); 2764 if (contact != null) { 2765 dst.contact = new ArrayList<ContactDetail>(); 2766 for (ContactDetail i : contact) 2767 dst.contact.add(i.copy()); 2768 }; 2769 dst.description = description == null ? null : description.copy(); 2770 if (useContext != null) { 2771 dst.useContext = new ArrayList<UsageContext>(); 2772 for (UsageContext i : useContext) 2773 dst.useContext.add(i.copy()); 2774 }; 2775 if (jurisdiction != null) { 2776 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2777 for (CodeableConcept i : jurisdiction) 2778 dst.jurisdiction.add(i.copy()); 2779 }; 2780 dst.purpose = purpose == null ? null : purpose.copy(); 2781 dst.code = code == null ? null : code.copy(); 2782 if (base != null) { 2783 dst.base = new ArrayList<CodeType>(); 2784 for (CodeType i : base) 2785 dst.base.add(i.copy()); 2786 }; 2787 dst.type = type == null ? null : type.copy(); 2788 dst.expression = expression == null ? null : expression.copy(); 2789 dst.xpath = xpath == null ? null : xpath.copy(); 2790 dst.xpathUsage = xpathUsage == null ? null : xpathUsage.copy(); 2791 if (target != null) { 2792 dst.target = new ArrayList<CodeType>(); 2793 for (CodeType i : target) 2794 dst.target.add(i.copy()); 2795 }; 2796 dst.multipleOr = multipleOr == null ? null : multipleOr.copy(); 2797 dst.multipleAnd = multipleAnd == null ? null : multipleAnd.copy(); 2798 if (comparator != null) { 2799 dst.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2800 for (Enumeration<SearchComparator> i : comparator) 2801 dst.comparator.add(i.copy()); 2802 }; 2803 if (modifier != null) { 2804 dst.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2805 for (Enumeration<SearchModifierCode> i : modifier) 2806 dst.modifier.add(i.copy()); 2807 }; 2808 if (chain != null) { 2809 dst.chain = new ArrayList<StringType>(); 2810 for (StringType i : chain) 2811 dst.chain.add(i.copy()); 2812 }; 2813 if (component != null) { 2814 dst.component = new ArrayList<SearchParameterComponentComponent>(); 2815 for (SearchParameterComponentComponent i : component) 2816 dst.component.add(i.copy()); 2817 }; 2818 return dst; 2819 } 2820 2821 protected SearchParameter typedCopy() { 2822 return copy(); 2823 } 2824 2825 @Override 2826 public boolean equalsDeep(Base other_) { 2827 if (!super.equalsDeep(other_)) 2828 return false; 2829 if (!(other_ instanceof SearchParameter)) 2830 return false; 2831 SearchParameter o = (SearchParameter) other_; 2832 return compareDeep(derivedFrom, o.derivedFrom, true) && compareDeep(purpose, o.purpose, true) && compareDeep(code, o.code, true) 2833 && compareDeep(base, o.base, true) && compareDeep(type, o.type, true) && compareDeep(expression, o.expression, true) 2834 && compareDeep(xpath, o.xpath, true) && compareDeep(xpathUsage, o.xpathUsage, true) && compareDeep(target, o.target, true) 2835 && compareDeep(multipleOr, o.multipleOr, true) && compareDeep(multipleAnd, o.multipleAnd, true) 2836 && compareDeep(comparator, o.comparator, true) && compareDeep(modifier, o.modifier, true) && compareDeep(chain, o.chain, true) 2837 && compareDeep(component, o.component, true); 2838 } 2839 2840 @Override 2841 public boolean equalsShallow(Base other_) { 2842 if (!super.equalsShallow(other_)) 2843 return false; 2844 if (!(other_ instanceof SearchParameter)) 2845 return false; 2846 SearchParameter o = (SearchParameter) other_; 2847 return compareValues(purpose, o.purpose, true) && compareValues(code, o.code, true) && compareValues(base, o.base, true) 2848 && compareValues(type, o.type, true) && compareValues(expression, o.expression, true) && compareValues(xpath, o.xpath, true) 2849 && compareValues(xpathUsage, o.xpathUsage, true) && compareValues(target, o.target, true) && compareValues(multipleOr, o.multipleOr, true) 2850 && compareValues(multipleAnd, o.multipleAnd, true) && compareValues(comparator, o.comparator, true) 2851 && compareValues(modifier, o.modifier, true) && compareValues(chain, o.chain, true); 2852 } 2853 2854 public boolean isEmpty() { 2855 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(derivedFrom, purpose, code 2856 , base, type, expression, xpath, xpathUsage, target, multipleOr, multipleAnd 2857 , comparator, modifier, chain, component); 2858 } 2859 2860 @Override 2861 public ResourceType getResourceType() { 2862 return ResourceType.SearchParameter; 2863 } 2864 2865 /** 2866 * Search parameter: <b>date</b> 2867 * <p> 2868 * Description: <b>The search parameter publication date</b><br> 2869 * Type: <b>date</b><br> 2870 * Path: <b>SearchParameter.date</b><br> 2871 * </p> 2872 */ 2873 @SearchParamDefinition(name="date", path="SearchParameter.date", description="The search parameter publication date", type="date" ) 2874 public static final String SP_DATE = "date"; 2875 /** 2876 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2877 * <p> 2878 * Description: <b>The search parameter publication date</b><br> 2879 * Type: <b>date</b><br> 2880 * Path: <b>SearchParameter.date</b><br> 2881 * </p> 2882 */ 2883 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2884 2885 /** 2886 * Search parameter: <b>code</b> 2887 * <p> 2888 * Description: <b>Code used in URL</b><br> 2889 * Type: <b>token</b><br> 2890 * Path: <b>SearchParameter.code</b><br> 2891 * </p> 2892 */ 2893 @SearchParamDefinition(name="code", path="SearchParameter.code", description="Code used in URL", type="token" ) 2894 public static final String SP_CODE = "code"; 2895 /** 2896 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2897 * <p> 2898 * Description: <b>Code used in URL</b><br> 2899 * Type: <b>token</b><br> 2900 * Path: <b>SearchParameter.code</b><br> 2901 * </p> 2902 */ 2903 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2904 2905 /** 2906 * Search parameter: <b>context-type-value</b> 2907 * <p> 2908 * Description: <b>A use context type and value assigned to the search parameter</b><br> 2909 * Type: <b>composite</b><br> 2910 * Path: <b></b><br> 2911 * </p> 2912 */ 2913 @SearchParamDefinition(name="context-type-value", path="SearchParameter.useContext", description="A use context type and value assigned to the search parameter", type="composite", compositeOf={"context-type", "context"} ) 2914 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 2915 /** 2916 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 2917 * <p> 2918 * Description: <b>A use context type and value assigned to the search parameter</b><br> 2919 * Type: <b>composite</b><br> 2920 * Path: <b></b><br> 2921 * </p> 2922 */ 2923 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 2924 2925 /** 2926 * Search parameter: <b>jurisdiction</b> 2927 * <p> 2928 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2929 * Type: <b>token</b><br> 2930 * Path: <b>SearchParameter.jurisdiction</b><br> 2931 * </p> 2932 */ 2933 @SearchParamDefinition(name="jurisdiction", path="SearchParameter.jurisdiction", description="Intended jurisdiction for the search parameter", type="token" ) 2934 public static final String SP_JURISDICTION = "jurisdiction"; 2935 /** 2936 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2937 * <p> 2938 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2939 * Type: <b>token</b><br> 2940 * Path: <b>SearchParameter.jurisdiction</b><br> 2941 * </p> 2942 */ 2943 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2944 2945 /** 2946 * Search parameter: <b>description</b> 2947 * <p> 2948 * Description: <b>The description of the search parameter</b><br> 2949 * Type: <b>string</b><br> 2950 * Path: <b>SearchParameter.description</b><br> 2951 * </p> 2952 */ 2953 @SearchParamDefinition(name="description", path="SearchParameter.description", description="The description of the search parameter", type="string" ) 2954 public static final String SP_DESCRIPTION = "description"; 2955 /** 2956 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2957 * <p> 2958 * Description: <b>The description of the search parameter</b><br> 2959 * Type: <b>string</b><br> 2960 * Path: <b>SearchParameter.description</b><br> 2961 * </p> 2962 */ 2963 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2964 2965 /** 2966 * Search parameter: <b>derived-from</b> 2967 * <p> 2968 * Description: <b>Original definition for the search parameter</b><br> 2969 * Type: <b>reference</b><br> 2970 * Path: <b>SearchParameter.derivedFrom</b><br> 2971 * </p> 2972 */ 2973 @SearchParamDefinition(name="derived-from", path="SearchParameter.derivedFrom", description="Original definition for the search parameter", type="reference", target={SearchParameter.class } ) 2974 public static final String SP_DERIVED_FROM = "derived-from"; 2975 /** 2976 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 2977 * <p> 2978 * Description: <b>Original definition for the search parameter</b><br> 2979 * Type: <b>reference</b><br> 2980 * Path: <b>SearchParameter.derivedFrom</b><br> 2981 * </p> 2982 */ 2983 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 2984 2985/** 2986 * Constant for fluent queries to be used to add include statements. Specifies 2987 * the path value of "<b>SearchParameter:derived-from</b>". 2988 */ 2989 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("SearchParameter:derived-from").toLocked(); 2990 2991 /** 2992 * Search parameter: <b>context-type</b> 2993 * <p> 2994 * Description: <b>A type of use context assigned to the search parameter</b><br> 2995 * Type: <b>token</b><br> 2996 * Path: <b>SearchParameter.useContext.code</b><br> 2997 * </p> 2998 */ 2999 @SearchParamDefinition(name="context-type", path="SearchParameter.useContext.code", description="A type of use context assigned to the search parameter", type="token" ) 3000 public static final String SP_CONTEXT_TYPE = "context-type"; 3001 /** 3002 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3003 * <p> 3004 * Description: <b>A type of use context assigned to the search parameter</b><br> 3005 * Type: <b>token</b><br> 3006 * Path: <b>SearchParameter.useContext.code</b><br> 3007 * </p> 3008 */ 3009 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 3010 3011 /** 3012 * Search parameter: <b>type</b> 3013 * <p> 3014 * Description: <b>number | date | string | token | reference | composite | quantity | uri | special</b><br> 3015 * Type: <b>token</b><br> 3016 * Path: <b>SearchParameter.type</b><br> 3017 * </p> 3018 */ 3019 @SearchParamDefinition(name="type", path="SearchParameter.type", description="number | date | string | token | reference | composite | quantity | uri | special", type="token" ) 3020 public static final String SP_TYPE = "type"; 3021 /** 3022 * <b>Fluent Client</b> search parameter constant for <b>type</b> 3023 * <p> 3024 * Description: <b>number | date | string | token | reference | composite | quantity | uri | special</b><br> 3025 * Type: <b>token</b><br> 3026 * Path: <b>SearchParameter.type</b><br> 3027 * </p> 3028 */ 3029 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 3030 3031 /** 3032 * Search parameter: <b>version</b> 3033 * <p> 3034 * Description: <b>The business version of the search parameter</b><br> 3035 * Type: <b>token</b><br> 3036 * Path: <b>SearchParameter.version</b><br> 3037 * </p> 3038 */ 3039 @SearchParamDefinition(name="version", path="SearchParameter.version", description="The business version of the search parameter", type="token" ) 3040 public static final String SP_VERSION = "version"; 3041 /** 3042 * <b>Fluent Client</b> search parameter constant for <b>version</b> 3043 * <p> 3044 * Description: <b>The business version of the search parameter</b><br> 3045 * Type: <b>token</b><br> 3046 * Path: <b>SearchParameter.version</b><br> 3047 * </p> 3048 */ 3049 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 3050 3051 /** 3052 * Search parameter: <b>url</b> 3053 * <p> 3054 * Description: <b>The uri that identifies the search parameter</b><br> 3055 * Type: <b>uri</b><br> 3056 * Path: <b>SearchParameter.url</b><br> 3057 * </p> 3058 */ 3059 @SearchParamDefinition(name="url", path="SearchParameter.url", description="The uri that identifies the search parameter", type="uri" ) 3060 public static final String SP_URL = "url"; 3061 /** 3062 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3063 * <p> 3064 * Description: <b>The uri that identifies the search parameter</b><br> 3065 * Type: <b>uri</b><br> 3066 * Path: <b>SearchParameter.url</b><br> 3067 * </p> 3068 */ 3069 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3070 3071 /** 3072 * Search parameter: <b>target</b> 3073 * <p> 3074 * Description: <b>Types of resource (if a resource reference)</b><br> 3075 * Type: <b>token</b><br> 3076 * Path: <b>SearchParameter.target</b><br> 3077 * </p> 3078 */ 3079 @SearchParamDefinition(name="target", path="SearchParameter.target", description="Types of resource (if a resource reference)", type="token" ) 3080 public static final String SP_TARGET = "target"; 3081 /** 3082 * <b>Fluent Client</b> search parameter constant for <b>target</b> 3083 * <p> 3084 * Description: <b>Types of resource (if a resource reference)</b><br> 3085 * Type: <b>token</b><br> 3086 * Path: <b>SearchParameter.target</b><br> 3087 * </p> 3088 */ 3089 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET); 3090 3091 /** 3092 * Search parameter: <b>context-quantity</b> 3093 * <p> 3094 * Description: <b>A quantity- or range-valued use context assigned to the search parameter</b><br> 3095 * Type: <b>quantity</b><br> 3096 * Path: <b>SearchParameter.useContext.valueQuantity, SearchParameter.useContext.valueRange</b><br> 3097 * </p> 3098 */ 3099 @SearchParamDefinition(name="context-quantity", path="(SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the search parameter", type="quantity" ) 3100 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3101 /** 3102 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3103 * <p> 3104 * Description: <b>A quantity- or range-valued use context assigned to the search parameter</b><br> 3105 * Type: <b>quantity</b><br> 3106 * Path: <b>SearchParameter.useContext.valueQuantity, SearchParameter.useContext.valueRange</b><br> 3107 * </p> 3108 */ 3109 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 3110 3111 /** 3112 * Search parameter: <b>component</b> 3113 * <p> 3114 * Description: <b>Defines how the part works</b><br> 3115 * Type: <b>reference</b><br> 3116 * Path: <b>SearchParameter.component.definition</b><br> 3117 * </p> 3118 */ 3119 @SearchParamDefinition(name="component", path="SearchParameter.component.definition", description="Defines how the part works", type="reference", target={SearchParameter.class } ) 3120 public static final String SP_COMPONENT = "component"; 3121 /** 3122 * <b>Fluent Client</b> search parameter constant for <b>component</b> 3123 * <p> 3124 * Description: <b>Defines how the part works</b><br> 3125 * Type: <b>reference</b><br> 3126 * Path: <b>SearchParameter.component.definition</b><br> 3127 * </p> 3128 */ 3129 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPONENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPONENT); 3130 3131/** 3132 * Constant for fluent queries to be used to add include statements. Specifies 3133 * the path value of "<b>SearchParameter:component</b>". 3134 */ 3135 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPONENT = new ca.uhn.fhir.model.api.Include("SearchParameter:component").toLocked(); 3136 3137 /** 3138 * Search parameter: <b>name</b> 3139 * <p> 3140 * Description: <b>Computationally friendly name of the search parameter</b><br> 3141 * Type: <b>string</b><br> 3142 * Path: <b>SearchParameter.name</b><br> 3143 * </p> 3144 */ 3145 @SearchParamDefinition(name="name", path="SearchParameter.name", description="Computationally friendly name of the search parameter", type="string" ) 3146 public static final String SP_NAME = "name"; 3147 /** 3148 * <b>Fluent Client</b> search parameter constant for <b>name</b> 3149 * <p> 3150 * Description: <b>Computationally friendly name of the search parameter</b><br> 3151 * Type: <b>string</b><br> 3152 * Path: <b>SearchParameter.name</b><br> 3153 * </p> 3154 */ 3155 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 3156 3157 /** 3158 * Search parameter: <b>context</b> 3159 * <p> 3160 * Description: <b>A use context assigned to the search parameter</b><br> 3161 * Type: <b>token</b><br> 3162 * Path: <b>SearchParameter.useContext.valueCodeableConcept</b><br> 3163 * </p> 3164 */ 3165 @SearchParamDefinition(name="context", path="(SearchParameter.useContext.value as CodeableConcept)", description="A use context assigned to the search parameter", type="token" ) 3166 public static final String SP_CONTEXT = "context"; 3167 /** 3168 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3169 * <p> 3170 * Description: <b>A use context assigned to the search parameter</b><br> 3171 * Type: <b>token</b><br> 3172 * Path: <b>SearchParameter.useContext.valueCodeableConcept</b><br> 3173 * </p> 3174 */ 3175 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3176 3177 /** 3178 * Search parameter: <b>publisher</b> 3179 * <p> 3180 * Description: <b>Name of the publisher of the search parameter</b><br> 3181 * Type: <b>string</b><br> 3182 * Path: <b>SearchParameter.publisher</b><br> 3183 * </p> 3184 */ 3185 @SearchParamDefinition(name="publisher", path="SearchParameter.publisher", description="Name of the publisher of the search parameter", type="string" ) 3186 public static final String SP_PUBLISHER = "publisher"; 3187 /** 3188 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3189 * <p> 3190 * Description: <b>Name of the publisher of the search parameter</b><br> 3191 * Type: <b>string</b><br> 3192 * Path: <b>SearchParameter.publisher</b><br> 3193 * </p> 3194 */ 3195 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 3196 3197 /** 3198 * Search parameter: <b>context-type-quantity</b> 3199 * <p> 3200 * Description: <b>A use context type and quantity- or range-based value assigned to the search parameter</b><br> 3201 * Type: <b>composite</b><br> 3202 * Path: <b></b><br> 3203 * </p> 3204 */ 3205 @SearchParamDefinition(name="context-type-quantity", path="SearchParameter.useContext", description="A use context type and quantity- or range-based value assigned to the search parameter", type="composite", compositeOf={"context-type", "context-quantity"} ) 3206 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3207 /** 3208 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3209 * <p> 3210 * Description: <b>A use context type and quantity- or range-based value assigned to the search parameter</b><br> 3211 * Type: <b>composite</b><br> 3212 * Path: <b></b><br> 3213 * </p> 3214 */ 3215 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 3216 3217 /** 3218 * Search parameter: <b>status</b> 3219 * <p> 3220 * Description: <b>The current status of the search parameter</b><br> 3221 * Type: <b>token</b><br> 3222 * Path: <b>SearchParameter.status</b><br> 3223 * </p> 3224 */ 3225 @SearchParamDefinition(name="status", path="SearchParameter.status", description="The current status of the search parameter", type="token" ) 3226 public static final String SP_STATUS = "status"; 3227 /** 3228 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3229 * <p> 3230 * Description: <b>The current status of the search parameter</b><br> 3231 * Type: <b>token</b><br> 3232 * Path: <b>SearchParameter.status</b><br> 3233 * </p> 3234 */ 3235 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3236 3237 /** 3238 * Search parameter: <b>base</b> 3239 * <p> 3240 * Description: <b>The resource type(s) this search parameter applies to</b><br> 3241 * Type: <b>token</b><br> 3242 * Path: <b>SearchParameter.base</b><br> 3243 * </p> 3244 */ 3245 @SearchParamDefinition(name="base", path="SearchParameter.base", description="The resource type(s) this search parameter applies to", type="token" ) 3246 public static final String SP_BASE = "base"; 3247 /** 3248 * <b>Fluent Client</b> search parameter constant for <b>base</b> 3249 * <p> 3250 * Description: <b>The resource type(s) this search parameter applies to</b><br> 3251 * Type: <b>token</b><br> 3252 * Path: <b>SearchParameter.base</b><br> 3253 * </p> 3254 */ 3255 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BASE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BASE); 3256 3257 3258} 3259