001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017package ca.uhn.fhir.model.dstu2.composite; 018 019import java.net.URI; 020import java.math.BigDecimal; 021import org.apache.commons.lang3.StringUtils; 022import java.util.*; 023import ca.uhn.fhir.model.api.*; 024import ca.uhn.fhir.model.primitive.*; 025import ca.uhn.fhir.model.api.annotation.*; 026import ca.uhn.fhir.model.base.composite.*; 027 028import ca.uhn.fhir.model.dstu2.valueset.AddressTypeEnum; 029import ca.uhn.fhir.model.dstu2.valueset.AddressUseEnum; 030import ca.uhn.fhir.model.dstu2.valueset.AggregationModeEnum; 031import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum; 032import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt; 033import ca.uhn.fhir.model.dstu2.composite.CodingDt; 034import ca.uhn.fhir.model.dstu2.valueset.ConstraintSeverityEnum; 035import ca.uhn.fhir.model.dstu2.valueset.ContactPointSystemEnum; 036import ca.uhn.fhir.model.dstu2.valueset.ContactPointUseEnum; 037import ca.uhn.fhir.model.dstu2.resource.Device; 038import ca.uhn.fhir.model.dstu2.valueset.EventTimingEnum; 039import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum; 040import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum; 041import ca.uhn.fhir.model.dstu2.valueset.NameUseEnum; 042import ca.uhn.fhir.model.dstu2.resource.Organization; 043import ca.uhn.fhir.model.dstu2.resource.Patient; 044import ca.uhn.fhir.model.dstu2.composite.PeriodDt; 045import ca.uhn.fhir.model.dstu2.resource.Practitioner; 046import ca.uhn.fhir.model.dstu2.valueset.PropertyRepresentationEnum; 047import ca.uhn.fhir.model.dstu2.valueset.QuantityComparatorEnum; 048import ca.uhn.fhir.model.dstu2.composite.QuantityDt; 049import ca.uhn.fhir.model.dstu2.composite.RangeDt; 050import ca.uhn.fhir.model.dstu2.resource.RelatedPerson; 051import ca.uhn.fhir.model.dstu2.valueset.SignatureTypeCodesEnum; 052import ca.uhn.fhir.model.dstu2.valueset.SlicingRulesEnum; 053import ca.uhn.fhir.model.api.TemporalPrecisionEnum; 054import ca.uhn.fhir.model.dstu2.valueset.TimingAbbreviationEnum; 055import ca.uhn.fhir.model.dstu2.valueset.UnitsOfTimeEnum; 056import ca.uhn.fhir.model.dstu2.resource.ValueSet; 057import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt; 058import ca.uhn.fhir.model.dstu2.composite.DurationDt; 059import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt; 060import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt; 061import ca.uhn.fhir.model.primitive.Base64BinaryDt; 062import ca.uhn.fhir.model.primitive.BooleanDt; 063import ca.uhn.fhir.model.primitive.BoundCodeDt; 064import ca.uhn.fhir.model.primitive.CodeDt; 065import ca.uhn.fhir.model.primitive.DateTimeDt; 066import ca.uhn.fhir.model.primitive.DecimalDt; 067import ca.uhn.fhir.model.primitive.IdDt; 068import ca.uhn.fhir.model.primitive.InstantDt; 069import ca.uhn.fhir.model.primitive.IntegerDt; 070import ca.uhn.fhir.model.primitive.MarkdownDt; 071import ca.uhn.fhir.model.primitive.PositiveIntDt; 072import ca.uhn.fhir.model.primitive.StringDt; 073import ca.uhn.fhir.model.primitive.UnsignedIntDt; 074import ca.uhn.fhir.model.primitive.UriDt; 075 076/** 077 * HAPI/FHIR <b>ElementDefinitionDt</b> Datatype 078 * () 079 * 080 * <p> 081 * <b>Definition:</b> 082 * Captures constraints on each element within the resource, profile, or extension 083 * </p> 084 * 085 * <p> 086 * <b>Requirements:</b> 087 * 088 * </p> 089 */ 090@DatatypeDef(name="ElementDefinition") 091public class ElementDefinitionDt 092 extends BaseIdentifiableElement implements ICompositeDatatype{ 093 094 /** 095 * Constructor 096 */ 097 public ElementDefinitionDt() { 098 // nothing 099 } 100 101 102 @Child(name="path", type=StringDt.class, order=0, min=1, max=1, summary=true, modifier=false) 103 @Description( 104 shortDefinition="", 105 formalDefinition="The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension" 106 ) 107 private StringDt myPath; 108 109 @Child(name="representation", type=CodeDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 110 @Description( 111 shortDefinition="", 112 formalDefinition="Codes that define how this element is represented in instances, when the deviation varies from the normal case" 113 ) 114 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/property-representation") 115 private java.util.List<BoundCodeDt<PropertyRepresentationEnum>> myRepresentation; 116 117 @Child(name="name", type=StringDt.class, order=2, min=0, max=1, summary=true, modifier=false) 118 @Description( 119 shortDefinition="", 120 formalDefinition="The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element" 121 ) 122 private StringDt myName; 123 124 @Child(name="label", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false) 125 @Description( 126 shortDefinition="", 127 formalDefinition="The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form." 128 ) 129 private StringDt myLabel; 130 131 @Child(name="code", type=CodingDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 132 @Description( 133 shortDefinition="", 134 formalDefinition="A code that provides the meaning for the element according to a particular terminology." 135 ) 136 private java.util.List<CodingDt> myCode; 137 138 @Child(name="slicing", order=5, min=0, max=1, summary=true, modifier=false) 139 @Description( 140 shortDefinition="", 141 formalDefinition="Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set)" 142 ) 143 private Slicing mySlicing; 144 145 @Child(name="short", type=StringDt.class, order=6, min=0, max=1, summary=true, modifier=false) 146 @Description( 147 shortDefinition="", 148 formalDefinition="A concise description of what this element means (e.g. for use in autogenerated summaries)" 149 ) 150 private StringDt myShort; 151 152 @Child(name="definition", type=MarkdownDt.class, order=7, min=0, max=1, summary=true, modifier=false) 153 @Description( 154 shortDefinition="", 155 formalDefinition="Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource" 156 ) 157 private MarkdownDt myDefinition; 158 159 @Child(name="comments", type=MarkdownDt.class, order=8, min=0, max=1, summary=true, modifier=false) 160 @Description( 161 shortDefinition="", 162 formalDefinition="Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc." 163 ) 164 private MarkdownDt myComments; 165 166 @Child(name="requirements", type=MarkdownDt.class, order=9, min=0, max=1, summary=true, modifier=false) 167 @Description( 168 shortDefinition="", 169 formalDefinition="This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element." 170 ) 171 private MarkdownDt myRequirements; 172 173 @Child(name="alias", type=StringDt.class, order=10, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 174 @Description( 175 shortDefinition="", 176 formalDefinition="Identifies additional names by which this element might also be known" 177 ) 178 private java.util.List<StringDt> myAlias; 179 180 @Child(name="min", type=IntegerDt.class, order=11, min=0, max=1, summary=true, modifier=false) 181 @Description( 182 shortDefinition="", 183 formalDefinition="The minimum number of times this element SHALL appear in the instance" 184 ) 185 private IntegerDt myMin; 186 187 @Child(name="max", type=StringDt.class, order=12, min=0, max=1, summary=true, modifier=false) 188 @Description( 189 shortDefinition="", 190 formalDefinition="The maximum number of times this element is permitted to appear in the instance" 191 ) 192 private StringDt myMax; 193 194 @Child(name="base", order=13, min=0, max=1, summary=true, modifier=false) 195 @Description( 196 shortDefinition="", 197 formalDefinition="Information about the base definition of the element, provided to make it unncessary for tools to trace the deviation of the element through the derived and related profiles. This information is only provided where the element definition represents a constraint on another element definition, and must be present if there is a base element definition." 198 ) 199 private Base myBase; 200 201 @Child(name="type", order=14, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 202 @Description( 203 shortDefinition="", 204 formalDefinition="The data type or resource that the value of this element is permitted to be" 205 ) 206 private java.util.List<Type> myType; 207 208 @Child(name="nameReference", type=StringDt.class, order=15, min=0, max=1, summary=true, modifier=false) 209 @Description( 210 shortDefinition="", 211 formalDefinition="Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element" 212 ) 213 private StringDt myNameReference; 214 215 @Child(name="defaultValue", type=IDatatype.class, order=16, min=0, max=1, summary=true, modifier=false) 216 @Description( 217 shortDefinition="", 218 formalDefinition="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false')" 219 ) 220 private IDatatype myDefaultValue; 221 222 @Child(name="meaningWhenMissing", type=MarkdownDt.class, order=17, min=0, max=1, summary=true, modifier=false) 223 @Description( 224 shortDefinition="", 225 formalDefinition="The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing'" 226 ) 227 private MarkdownDt myMeaningWhenMissing; 228 229 @Child(name="fixed", type=IDatatype.class, order=18, min=0, max=1, summary=true, modifier=false) 230 @Description( 231 shortDefinition="", 232 formalDefinition="Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing." 233 ) 234 private IDatatype myFixed; 235 236 @Child(name="pattern", type=IDatatype.class, order=19, min=0, max=1, summary=true, modifier=false) 237 @Description( 238 shortDefinition="", 239 formalDefinition="Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-sensitive, accent-sensitive, etc.)." 240 ) 241 private IDatatype myPattern; 242 243 @Child(name="example", type=IDatatype.class, order=20, min=0, max=1, summary=true, modifier=false) 244 @Description( 245 shortDefinition="", 246 formalDefinition="A sample value for this element demonstrating the type of information that would typically be captured." 247 ) 248 private IDatatype myExample; 249 250 @Child(name="minValue", type=IDatatype.class, order=21, min=0, max=1, summary=true, modifier=false) 251 @Description( 252 shortDefinition="", 253 formalDefinition="The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity" 254 ) 255 private IDatatype myMinValue; 256 257 @Child(name="maxValue", type=IDatatype.class, order=22, min=0, max=1, summary=true, modifier=false) 258 @Description( 259 shortDefinition="", 260 formalDefinition="The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity" 261 ) 262 private IDatatype myMaxValue; 263 264 @Child(name="maxLength", type=IntegerDt.class, order=23, min=0, max=1, summary=true, modifier=false) 265 @Description( 266 shortDefinition="", 267 formalDefinition="Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element" 268 ) 269 private IntegerDt myMaxLength; 270 271 @Child(name="condition", type=IdDt.class, order=24, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 272 @Description( 273 shortDefinition="", 274 formalDefinition="A reference to an invariant that may make additional statements about the cardinality or value in the instance" 275 ) 276 private java.util.List<IdDt> myCondition; 277 278 @Child(name="constraint", order=25, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 279 @Description( 280 shortDefinition="", 281 formalDefinition="Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance" 282 ) 283 private java.util.List<Constraint> myConstraint; 284 285 @Child(name="mustSupport", type=BooleanDt.class, order=26, min=0, max=1, summary=true, modifier=false) 286 @Description( 287 shortDefinition="", 288 formalDefinition="If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported" 289 ) 290 private BooleanDt myMustSupport; 291 292 @Child(name="isModifier", type=BooleanDt.class, order=27, min=0, max=1, summary=true, modifier=false) 293 @Description( 294 shortDefinition="", 295 formalDefinition="If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system." 296 ) 297 private BooleanDt myIsModifier; 298 299 @Child(name="isSummary", type=BooleanDt.class, order=28, min=0, max=1, summary=true, modifier=false) 300 @Description( 301 shortDefinition="", 302 formalDefinition="Whether the element should be included if a client requests a search with the parameter _summary=true" 303 ) 304 private BooleanDt myIsSummary; 305 306 @Child(name="binding", order=29, min=0, max=1, summary=true, modifier=false) 307 @Description( 308 shortDefinition="", 309 formalDefinition="Binds to a value set if this element is coded (code, Coding, CodeableConcept)" 310 ) 311 private Binding myBinding; 312 313 @Child(name="mapping", order=30, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 314 @Description( 315 shortDefinition="", 316 formalDefinition="Identifies a concept from an external specification that roughly corresponds to this element" 317 ) 318 private java.util.List<Mapping> myMapping; 319 320 321 @Override 322 public boolean isEmpty() { 323 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myPath, myRepresentation, myName, myLabel, myCode, mySlicing, myShort, myDefinition, myComments, myRequirements, myAlias, myMin, myMax, myBase, myType, myNameReference, myDefaultValue, myMeaningWhenMissing, myFixed, myPattern, myExample, myMinValue, myMaxValue, myMaxLength, myCondition, myConstraint, myMustSupport, myIsModifier, myIsSummary, myBinding, myMapping); 324 } 325 326 @Override 327 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 328 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPath, myRepresentation, myName, myLabel, myCode, mySlicing, myShort, myDefinition, myComments, myRequirements, myAlias, myMin, myMax, myBase, myType, myNameReference, myDefaultValue, myMeaningWhenMissing, myFixed, myPattern, myExample, myMinValue, myMaxValue, myMaxLength, myCondition, myConstraint, myMustSupport, myIsModifier, myIsSummary, myBinding, myMapping); 329 } 330 331 /** 332 * Gets the value(s) for <b>path</b> (). 333 * creating it if it does 334 * not exist. Will not return <code>null</code>. 335 * 336 * <p> 337 * <b>Definition:</b> 338 * The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension 339 * </p> 340 */ 341 public StringDt getPathElement() { 342 if (myPath == null) { 343 myPath = new StringDt(); 344 } 345 return myPath; 346 } 347 348 349 /** 350 * Gets the value(s) for <b>path</b> (). 351 * creating it if it does 352 * not exist. This method may return <code>null</code>. 353 * 354 * <p> 355 * <b>Definition:</b> 356 * The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension 357 * </p> 358 */ 359 public String getPath() { 360 return getPathElement().getValue(); 361 } 362 363 /** 364 * Sets the value(s) for <b>path</b> () 365 * 366 * <p> 367 * <b>Definition:</b> 368 * The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension 369 * </p> 370 */ 371 public ElementDefinitionDt setPath(StringDt theValue) { 372 myPath = theValue; 373 return this; 374 } 375 376 377 378 /** 379 * Sets the value for <b>path</b> () 380 * 381 * <p> 382 * <b>Definition:</b> 383 * The path identifies the element and is expressed as a \".\"-separated list of ancestor elements, beginning with the name of the resource or extension 384 * </p> 385 */ 386 public ElementDefinitionDt setPath( String theString) { 387 myPath = new StringDt(theString); 388 return this; 389 } 390 391 392 /** 393 * Gets the value(s) for <b>representation</b> (). 394 * creating it if it does 395 * not exist. Will not return <code>null</code>. 396 * 397 * <p> 398 * <b>Definition:</b> 399 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 400 * </p> 401 */ 402 public java.util.List<BoundCodeDt<PropertyRepresentationEnum>> getRepresentation() { 403 if (myRepresentation == null) { 404 myRepresentation = new java.util.ArrayList<BoundCodeDt<PropertyRepresentationEnum>>(); 405 } 406 return myRepresentation; 407 } 408 409 /** 410 * Sets the value(s) for <b>representation</b> () 411 * 412 * <p> 413 * <b>Definition:</b> 414 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 415 * </p> 416 */ 417 public ElementDefinitionDt setRepresentation(java.util.List<BoundCodeDt<PropertyRepresentationEnum>> theValue) { 418 myRepresentation = theValue; 419 return this; 420 } 421 422 423 424 /** 425 * Add a value for <b>representation</b> () using an enumerated type. This 426 * is intended as a convenience method for situations where the FHIR defined ValueSets are mandatory 427 * or contain the desirable codes. If you wish to use codes other than those which are built-in, 428 * you may also use the {@link #addRepresentation()} method. 429 * 430 * <p> 431 * <b>Definition:</b> 432 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 433 * </p> 434 */ 435 public BoundCodeDt<PropertyRepresentationEnum> addRepresentation(PropertyRepresentationEnum theValue) { 436 BoundCodeDt<PropertyRepresentationEnum> retVal = new BoundCodeDt<PropertyRepresentationEnum>(PropertyRepresentationEnum.VALUESET_BINDER, theValue); 437 getRepresentation().add(retVal); 438 return retVal; 439 } 440 441 /** 442 * Gets the first repetition for <b>representation</b> (), 443 * creating it if it does not already exist. 444 * 445 * <p> 446 * <b>Definition:</b> 447 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 448 * </p> 449 */ 450 public BoundCodeDt<PropertyRepresentationEnum> getRepresentationFirstRep() { 451 if (getRepresentation().size() == 0) { 452 addRepresentation(); 453 } 454 return getRepresentation().get(0); 455 } 456 457 /** 458 * Add a value for <b>representation</b> () 459 * 460 * <p> 461 * <b>Definition:</b> 462 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 463 * </p> 464 */ 465 public BoundCodeDt<PropertyRepresentationEnum> addRepresentation() { 466 BoundCodeDt<PropertyRepresentationEnum> retVal = new BoundCodeDt<PropertyRepresentationEnum>(PropertyRepresentationEnum.VALUESET_BINDER); 467 getRepresentation().add(retVal); 468 return retVal; 469 } 470 471 /** 472 * Sets the value(s), and clears any existing value(s) for <b>representation</b> () 473 * 474 * <p> 475 * <b>Definition:</b> 476 * Codes that define how this element is represented in instances, when the deviation varies from the normal case 477 * </p> 478 */ 479 public ElementDefinitionDt setRepresentation(PropertyRepresentationEnum theValue) { 480 getRepresentation().clear(); 481 addRepresentation(theValue); 482 return this; 483 } 484 485 486 /** 487 * Gets the value(s) for <b>name</b> (). 488 * creating it if it does 489 * not exist. Will not return <code>null</code>. 490 * 491 * <p> 492 * <b>Definition:</b> 493 * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element 494 * </p> 495 */ 496 public StringDt getNameElement() { 497 if (myName == null) { 498 myName = new StringDt(); 499 } 500 return myName; 501 } 502 503 504 /** 505 * Gets the value(s) for <b>name</b> (). 506 * creating it if it does 507 * not exist. This method may return <code>null</code>. 508 * 509 * <p> 510 * <b>Definition:</b> 511 * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element 512 * </p> 513 */ 514 public String getName() { 515 return getNameElement().getValue(); 516 } 517 518 /** 519 * Sets the value(s) for <b>name</b> () 520 * 521 * <p> 522 * <b>Definition:</b> 523 * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element 524 * </p> 525 */ 526 public ElementDefinitionDt setName(StringDt theValue) { 527 myName = theValue; 528 return this; 529 } 530 531 532 533 /** 534 * Sets the value for <b>name</b> () 535 * 536 * <p> 537 * <b>Definition:</b> 538 * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element 539 * </p> 540 */ 541 public ElementDefinitionDt setName( String theString) { 542 myName = new StringDt(theString); 543 return this; 544 } 545 546 547 /** 548 * Gets the value(s) for <b>label</b> (). 549 * creating it if it does 550 * not exist. Will not return <code>null</code>. 551 * 552 * <p> 553 * <b>Definition:</b> 554 * The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. 555 * </p> 556 */ 557 public StringDt getLabelElement() { 558 if (myLabel == null) { 559 myLabel = new StringDt(); 560 } 561 return myLabel; 562 } 563 564 565 /** 566 * Gets the value(s) for <b>label</b> (). 567 * creating it if it does 568 * not exist. This method may return <code>null</code>. 569 * 570 * <p> 571 * <b>Definition:</b> 572 * The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. 573 * </p> 574 */ 575 public String getLabel() { 576 return getLabelElement().getValue(); 577 } 578 579 /** 580 * Sets the value(s) for <b>label</b> () 581 * 582 * <p> 583 * <b>Definition:</b> 584 * The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. 585 * </p> 586 */ 587 public ElementDefinitionDt setLabel(StringDt theValue) { 588 myLabel = theValue; 589 return this; 590 } 591 592 593 594 /** 595 * Sets the value for <b>label</b> () 596 * 597 * <p> 598 * <b>Definition:</b> 599 * The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. 600 * </p> 601 */ 602 public ElementDefinitionDt setLabel( String theString) { 603 myLabel = new StringDt(theString); 604 return this; 605 } 606 607 608 /** 609 * Gets the value(s) for <b>code</b> (). 610 * creating it if it does 611 * not exist. Will not return <code>null</code>. 612 * 613 * <p> 614 * <b>Definition:</b> 615 * A code that provides the meaning for the element according to a particular terminology. 616 * </p> 617 */ 618 public java.util.List<CodingDt> getCode() { 619 if (myCode == null) { 620 myCode = new java.util.ArrayList<CodingDt>(); 621 } 622 return myCode; 623 } 624 625 /** 626 * Sets the value(s) for <b>code</b> () 627 * 628 * <p> 629 * <b>Definition:</b> 630 * A code that provides the meaning for the element according to a particular terminology. 631 * </p> 632 */ 633 public ElementDefinitionDt setCode(java.util.List<CodingDt> theValue) { 634 myCode = theValue; 635 return this; 636 } 637 638 639 640 /** 641 * Adds and returns a new value for <b>code</b> () 642 * 643 * <p> 644 * <b>Definition:</b> 645 * A code that provides the meaning for the element according to a particular terminology. 646 * </p> 647 */ 648 public CodingDt addCode() { 649 CodingDt newType = new CodingDt(); 650 getCode().add(newType); 651 return newType; 652 } 653 654 /** 655 * Adds a given new value for <b>code</b> () 656 * 657 * <p> 658 * <b>Definition:</b> 659 * A code that provides the meaning for the element according to a particular terminology. 660 * </p> 661 * @param theValue The code to add (must not be <code>null</code>) 662 */ 663 public ElementDefinitionDt addCode(CodingDt theValue) { 664 if (theValue == null) { 665 throw new NullPointerException("theValue must not be null"); 666 } 667 getCode().add(theValue); 668 return this; 669 } 670 671 /** 672 * Gets the first repetition for <b>code</b> (), 673 * creating it if it does not already exist. 674 * 675 * <p> 676 * <b>Definition:</b> 677 * A code that provides the meaning for the element according to a particular terminology. 678 * </p> 679 */ 680 public CodingDt getCodeFirstRep() { 681 if (getCode().isEmpty()) { 682 return addCode(); 683 } 684 return getCode().get(0); 685 } 686 687 /** 688 * Gets the value(s) for <b>slicing</b> (). 689 * creating it if it does 690 * not exist. Will not return <code>null</code>. 691 * 692 * <p> 693 * <b>Definition:</b> 694 * Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set) 695 * </p> 696 */ 697 public Slicing getSlicing() { 698 if (mySlicing == null) { 699 mySlicing = new Slicing(); 700 } 701 return mySlicing; 702 } 703 704 /** 705 * Sets the value(s) for <b>slicing</b> () 706 * 707 * <p> 708 * <b>Definition:</b> 709 * Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set) 710 * </p> 711 */ 712 public ElementDefinitionDt setSlicing(Slicing theValue) { 713 mySlicing = theValue; 714 return this; 715 } 716 717 718 719 720 /** 721 * Gets the value(s) for <b>short</b> (). 722 * creating it if it does 723 * not exist. Will not return <code>null</code>. 724 * 725 * <p> 726 * <b>Definition:</b> 727 * A concise description of what this element means (e.g. for use in autogenerated summaries) 728 * </p> 729 */ 730 public StringDt getShortElement() { 731 if (myShort == null) { 732 myShort = new StringDt(); 733 } 734 return myShort; 735 } 736 737 738 /** 739 * Gets the value(s) for <b>short</b> (). 740 * creating it if it does 741 * not exist. This method may return <code>null</code>. 742 * 743 * <p> 744 * <b>Definition:</b> 745 * A concise description of what this element means (e.g. for use in autogenerated summaries) 746 * </p> 747 */ 748 public String getShort() { 749 return getShortElement().getValue(); 750 } 751 752 /** 753 * Sets the value(s) for <b>short</b> () 754 * 755 * <p> 756 * <b>Definition:</b> 757 * A concise description of what this element means (e.g. for use in autogenerated summaries) 758 * </p> 759 */ 760 public ElementDefinitionDt setShort(StringDt theValue) { 761 myShort = theValue; 762 return this; 763 } 764 765 766 767 /** 768 * Sets the value for <b>short</b> () 769 * 770 * <p> 771 * <b>Definition:</b> 772 * A concise description of what this element means (e.g. for use in autogenerated summaries) 773 * </p> 774 */ 775 public ElementDefinitionDt setShort( String theString) { 776 myShort = new StringDt(theString); 777 return this; 778 } 779 780 781 /** 782 * Gets the value(s) for <b>definition</b> (). 783 * creating it if it does 784 * not exist. Will not return <code>null</code>. 785 * 786 * <p> 787 * <b>Definition:</b> 788 * Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource 789 * </p> 790 */ 791 public MarkdownDt getDefinitionElement() { 792 if (myDefinition == null) { 793 myDefinition = new MarkdownDt(); 794 } 795 return myDefinition; 796 } 797 798 799 /** 800 * Gets the value(s) for <b>definition</b> (). 801 * creating it if it does 802 * not exist. This method may return <code>null</code>. 803 * 804 * <p> 805 * <b>Definition:</b> 806 * Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource 807 * </p> 808 */ 809 public String getDefinition() { 810 return getDefinitionElement().getValue(); 811 } 812 813 /** 814 * Sets the value(s) for <b>definition</b> () 815 * 816 * <p> 817 * <b>Definition:</b> 818 * Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource 819 * </p> 820 */ 821 public ElementDefinitionDt setDefinition(MarkdownDt theValue) { 822 myDefinition = theValue; 823 return this; 824 } 825 826 827 828 829 /** 830 * Gets the value(s) for <b>comments</b> (). 831 * creating it if it does 832 * not exist. Will not return <code>null</code>. 833 * 834 * <p> 835 * <b>Definition:</b> 836 * Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. 837 * </p> 838 */ 839 public MarkdownDt getCommentsElement() { 840 if (myComments == null) { 841 myComments = new MarkdownDt(); 842 } 843 return myComments; 844 } 845 846 847 /** 848 * Gets the value(s) for <b>comments</b> (). 849 * creating it if it does 850 * not exist. This method may return <code>null</code>. 851 * 852 * <p> 853 * <b>Definition:</b> 854 * Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. 855 * </p> 856 */ 857 public String getComments() { 858 return getCommentsElement().getValue(); 859 } 860 861 /** 862 * Sets the value(s) for <b>comments</b> () 863 * 864 * <p> 865 * <b>Definition:</b> 866 * Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. 867 * </p> 868 */ 869 public ElementDefinitionDt setComments(MarkdownDt theValue) { 870 myComments = theValue; 871 return this; 872 } 873 874 875 876 877 /** 878 * Gets the value(s) for <b>requirements</b> (). 879 * creating it if it does 880 * not exist. Will not return <code>null</code>. 881 * 882 * <p> 883 * <b>Definition:</b> 884 * This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element. 885 * </p> 886 */ 887 public MarkdownDt getRequirementsElement() { 888 if (myRequirements == null) { 889 myRequirements = new MarkdownDt(); 890 } 891 return myRequirements; 892 } 893 894 895 /** 896 * Gets the value(s) for <b>requirements</b> (). 897 * creating it if it does 898 * not exist. This method may return <code>null</code>. 899 * 900 * <p> 901 * <b>Definition:</b> 902 * This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element. 903 * </p> 904 */ 905 public String getRequirements() { 906 return getRequirementsElement().getValue(); 907 } 908 909 /** 910 * Sets the value(s) for <b>requirements</b> () 911 * 912 * <p> 913 * <b>Definition:</b> 914 * This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element. 915 * </p> 916 */ 917 public ElementDefinitionDt setRequirements(MarkdownDt theValue) { 918 myRequirements = theValue; 919 return this; 920 } 921 922 923 924 925 /** 926 * Gets the value(s) for <b>alias</b> (). 927 * creating it if it does 928 * not exist. Will not return <code>null</code>. 929 * 930 * <p> 931 * <b>Definition:</b> 932 * Identifies additional names by which this element might also be known 933 * </p> 934 */ 935 public java.util.List<StringDt> getAlias() { 936 if (myAlias == null) { 937 myAlias = new java.util.ArrayList<StringDt>(); 938 } 939 return myAlias; 940 } 941 942 /** 943 * Sets the value(s) for <b>alias</b> () 944 * 945 * <p> 946 * <b>Definition:</b> 947 * Identifies additional names by which this element might also be known 948 * </p> 949 */ 950 public ElementDefinitionDt setAlias(java.util.List<StringDt> theValue) { 951 myAlias = theValue; 952 return this; 953 } 954 955 956 957 /** 958 * Adds and returns a new value for <b>alias</b> () 959 * 960 * <p> 961 * <b>Definition:</b> 962 * Identifies additional names by which this element might also be known 963 * </p> 964 */ 965 public StringDt addAlias() { 966 StringDt newType = new StringDt(); 967 getAlias().add(newType); 968 return newType; 969 } 970 971 /** 972 * Adds a given new value for <b>alias</b> () 973 * 974 * <p> 975 * <b>Definition:</b> 976 * Identifies additional names by which this element might also be known 977 * </p> 978 * @param theValue The alias to add (must not be <code>null</code>) 979 */ 980 public ElementDefinitionDt addAlias(StringDt theValue) { 981 if (theValue == null) { 982 throw new NullPointerException("theValue must not be null"); 983 } 984 getAlias().add(theValue); 985 return this; 986 } 987 988 /** 989 * Gets the first repetition for <b>alias</b> (), 990 * creating it if it does not already exist. 991 * 992 * <p> 993 * <b>Definition:</b> 994 * Identifies additional names by which this element might also be known 995 * </p> 996 */ 997 public StringDt getAliasFirstRep() { 998 if (getAlias().isEmpty()) { 999 return addAlias(); 1000 } 1001 return getAlias().get(0); 1002 } 1003 /** 1004 * Adds a new value for <b>alias</b> () 1005 * 1006 * <p> 1007 * <b>Definition:</b> 1008 * Identifies additional names by which this element might also be known 1009 * </p> 1010 * 1011 * @return Returns a reference to this object, to allow for simple chaining. 1012 */ 1013 public ElementDefinitionDt addAlias( String theString) { 1014 if (myAlias == null) { 1015 myAlias = new java.util.ArrayList<StringDt>(); 1016 } 1017 myAlias.add(new StringDt(theString)); 1018 return this; 1019 } 1020 1021 1022 /** 1023 * Gets the value(s) for <b>min</b> (). 1024 * creating it if it does 1025 * not exist. Will not return <code>null</code>. 1026 * 1027 * <p> 1028 * <b>Definition:</b> 1029 * The minimum number of times this element SHALL appear in the instance 1030 * </p> 1031 */ 1032 public IntegerDt getMinElement() { 1033 if (myMin == null) { 1034 myMin = new IntegerDt(); 1035 } 1036 return myMin; 1037 } 1038 1039 1040 /** 1041 * Gets the value(s) for <b>min</b> (). 1042 * creating it if it does 1043 * not exist. This method may return <code>null</code>. 1044 * 1045 * <p> 1046 * <b>Definition:</b> 1047 * The minimum number of times this element SHALL appear in the instance 1048 * </p> 1049 */ 1050 public Integer getMin() { 1051 return getMinElement().getValue(); 1052 } 1053 1054 /** 1055 * Sets the value(s) for <b>min</b> () 1056 * 1057 * <p> 1058 * <b>Definition:</b> 1059 * The minimum number of times this element SHALL appear in the instance 1060 * </p> 1061 */ 1062 public ElementDefinitionDt setMin(IntegerDt theValue) { 1063 myMin = theValue; 1064 return this; 1065 } 1066 1067 1068 1069 /** 1070 * Sets the value for <b>min</b> () 1071 * 1072 * <p> 1073 * <b>Definition:</b> 1074 * The minimum number of times this element SHALL appear in the instance 1075 * </p> 1076 */ 1077 public ElementDefinitionDt setMin( int theInteger) { 1078 myMin = new IntegerDt(theInteger); 1079 return this; 1080 } 1081 1082 1083 /** 1084 * Gets the value(s) for <b>max</b> (). 1085 * creating it if it does 1086 * not exist. Will not return <code>null</code>. 1087 * 1088 * <p> 1089 * <b>Definition:</b> 1090 * The maximum number of times this element is permitted to appear in the instance 1091 * </p> 1092 */ 1093 public StringDt getMaxElement() { 1094 if (myMax == null) { 1095 myMax = new StringDt(); 1096 } 1097 return myMax; 1098 } 1099 1100 1101 /** 1102 * Gets the value(s) for <b>max</b> (). 1103 * creating it if it does 1104 * not exist. This method may return <code>null</code>. 1105 * 1106 * <p> 1107 * <b>Definition:</b> 1108 * The maximum number of times this element is permitted to appear in the instance 1109 * </p> 1110 */ 1111 public String getMax() { 1112 return getMaxElement().getValue(); 1113 } 1114 1115 /** 1116 * Sets the value(s) for <b>max</b> () 1117 * 1118 * <p> 1119 * <b>Definition:</b> 1120 * The maximum number of times this element is permitted to appear in the instance 1121 * </p> 1122 */ 1123 public ElementDefinitionDt setMax(StringDt theValue) { 1124 myMax = theValue; 1125 return this; 1126 } 1127 1128 1129 1130 /** 1131 * Sets the value for <b>max</b> () 1132 * 1133 * <p> 1134 * <b>Definition:</b> 1135 * The maximum number of times this element is permitted to appear in the instance 1136 * </p> 1137 */ 1138 public ElementDefinitionDt setMax( String theString) { 1139 myMax = new StringDt(theString); 1140 return this; 1141 } 1142 1143 1144 /** 1145 * Gets the value(s) for <b>base</b> (). 1146 * creating it if it does 1147 * not exist. Will not return <code>null</code>. 1148 * 1149 * <p> 1150 * <b>Definition:</b> 1151 * Information about the base definition of the element, provided to make it unncessary for tools to trace the deviation of the element through the derived and related profiles. This information is only provided where the element definition represents a constraint on another element definition, and must be present if there is a base element definition. 1152 * </p> 1153 */ 1154 public Base getBase() { 1155 if (myBase == null) { 1156 myBase = new Base(); 1157 } 1158 return myBase; 1159 } 1160 1161 /** 1162 * Sets the value(s) for <b>base</b> () 1163 * 1164 * <p> 1165 * <b>Definition:</b> 1166 * Information about the base definition of the element, provided to make it unncessary for tools to trace the deviation of the element through the derived and related profiles. This information is only provided where the element definition represents a constraint on another element definition, and must be present if there is a base element definition. 1167 * </p> 1168 */ 1169 public ElementDefinitionDt setBase(Base theValue) { 1170 myBase = theValue; 1171 return this; 1172 } 1173 1174 1175 1176 1177 /** 1178 * Gets the value(s) for <b>type</b> (). 1179 * creating it if it does 1180 * not exist. Will not return <code>null</code>. 1181 * 1182 * <p> 1183 * <b>Definition:</b> 1184 * The data type or resource that the value of this element is permitted to be 1185 * </p> 1186 */ 1187 public java.util.List<Type> getType() { 1188 if (myType == null) { 1189 myType = new java.util.ArrayList<Type>(); 1190 } 1191 return myType; 1192 } 1193 1194 /** 1195 * Sets the value(s) for <b>type</b> () 1196 * 1197 * <p> 1198 * <b>Definition:</b> 1199 * The data type or resource that the value of this element is permitted to be 1200 * </p> 1201 */ 1202 public ElementDefinitionDt setType(java.util.List<Type> theValue) { 1203 myType = theValue; 1204 return this; 1205 } 1206 1207 1208 1209 /** 1210 * Adds and returns a new value for <b>type</b> () 1211 * 1212 * <p> 1213 * <b>Definition:</b> 1214 * The data type or resource that the value of this element is permitted to be 1215 * </p> 1216 */ 1217 public Type addType() { 1218 Type newType = new Type(); 1219 getType().add(newType); 1220 return newType; 1221 } 1222 1223 /** 1224 * Adds a given new value for <b>type</b> () 1225 * 1226 * <p> 1227 * <b>Definition:</b> 1228 * The data type or resource that the value of this element is permitted to be 1229 * </p> 1230 * @param theValue The type to add (must not be <code>null</code>) 1231 */ 1232 public ElementDefinitionDt addType(Type theValue) { 1233 if (theValue == null) { 1234 throw new NullPointerException("theValue must not be null"); 1235 } 1236 getType().add(theValue); 1237 return this; 1238 } 1239 1240 /** 1241 * Gets the first repetition for <b>type</b> (), 1242 * creating it if it does not already exist. 1243 * 1244 * <p> 1245 * <b>Definition:</b> 1246 * The data type or resource that the value of this element is permitted to be 1247 * </p> 1248 */ 1249 public Type getTypeFirstRep() { 1250 if (getType().isEmpty()) { 1251 return addType(); 1252 } 1253 return getType().get(0); 1254 } 1255 1256 /** 1257 * Gets the value(s) for <b>nameReference</b> (). 1258 * creating it if it does 1259 * not exist. Will not return <code>null</code>. 1260 * 1261 * <p> 1262 * <b>Definition:</b> 1263 * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element 1264 * </p> 1265 */ 1266 public StringDt getNameReferenceElement() { 1267 if (myNameReference == null) { 1268 myNameReference = new StringDt(); 1269 } 1270 return myNameReference; 1271 } 1272 1273 1274 /** 1275 * Gets the value(s) for <b>nameReference</b> (). 1276 * creating it if it does 1277 * not exist. This method may return <code>null</code>. 1278 * 1279 * <p> 1280 * <b>Definition:</b> 1281 * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element 1282 * </p> 1283 */ 1284 public String getNameReference() { 1285 return getNameReferenceElement().getValue(); 1286 } 1287 1288 /** 1289 * Sets the value(s) for <b>nameReference</b> () 1290 * 1291 * <p> 1292 * <b>Definition:</b> 1293 * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element 1294 * </p> 1295 */ 1296 public ElementDefinitionDt setNameReference(StringDt theValue) { 1297 myNameReference = theValue; 1298 return this; 1299 } 1300 1301 1302 1303 /** 1304 * Sets the value for <b>nameReference</b> () 1305 * 1306 * <p> 1307 * <b>Definition:</b> 1308 * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element 1309 * </p> 1310 */ 1311 public ElementDefinitionDt setNameReference( String theString) { 1312 myNameReference = new StringDt(theString); 1313 return this; 1314 } 1315 1316 1317 /** 1318 * Gets the value(s) for <b>defaultValue[x]</b> (). 1319 * creating it if it does 1320 * not exist. Will not return <code>null</code>. 1321 * 1322 * <p> 1323 * <b>Definition:</b> 1324 * The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false') 1325 * </p> 1326 */ 1327 public IDatatype getDefaultValue() { 1328 return myDefaultValue; 1329 } 1330 1331 /** 1332 * Sets the value(s) for <b>defaultValue[x]</b> () 1333 * 1334 * <p> 1335 * <b>Definition:</b> 1336 * The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false') 1337 * </p> 1338 */ 1339 public ElementDefinitionDt setDefaultValue(IDatatype theValue) { 1340 myDefaultValue = theValue; 1341 return this; 1342 } 1343 1344 1345 1346 1347 /** 1348 * Gets the value(s) for <b>meaningWhenMissing</b> (). 1349 * creating it if it does 1350 * not exist. Will not return <code>null</code>. 1351 * 1352 * <p> 1353 * <b>Definition:</b> 1354 * The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing' 1355 * </p> 1356 */ 1357 public MarkdownDt getMeaningWhenMissingElement() { 1358 if (myMeaningWhenMissing == null) { 1359 myMeaningWhenMissing = new MarkdownDt(); 1360 } 1361 return myMeaningWhenMissing; 1362 } 1363 1364 1365 /** 1366 * Gets the value(s) for <b>meaningWhenMissing</b> (). 1367 * creating it if it does 1368 * not exist. This method may return <code>null</code>. 1369 * 1370 * <p> 1371 * <b>Definition:</b> 1372 * The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing' 1373 * </p> 1374 */ 1375 public String getMeaningWhenMissing() { 1376 return getMeaningWhenMissingElement().getValue(); 1377 } 1378 1379 /** 1380 * Sets the value(s) for <b>meaningWhenMissing</b> () 1381 * 1382 * <p> 1383 * <b>Definition:</b> 1384 * The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing' 1385 * </p> 1386 */ 1387 public ElementDefinitionDt setMeaningWhenMissing(MarkdownDt theValue) { 1388 myMeaningWhenMissing = theValue; 1389 return this; 1390 } 1391 1392 1393 1394 1395 /** 1396 * Gets the value(s) for <b>fixed[x]</b> (). 1397 * creating it if it does 1398 * not exist. Will not return <code>null</code>. 1399 * 1400 * <p> 1401 * <b>Definition:</b> 1402 * Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing. 1403 * </p> 1404 */ 1405 public IDatatype getFixed() { 1406 return myFixed; 1407 } 1408 1409 /** 1410 * Sets the value(s) for <b>fixed[x]</b> () 1411 * 1412 * <p> 1413 * <b>Definition:</b> 1414 * Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing. 1415 * </p> 1416 */ 1417 public ElementDefinitionDt setFixed(IDatatype theValue) { 1418 myFixed = theValue; 1419 return this; 1420 } 1421 1422 1423 1424 1425 /** 1426 * Gets the value(s) for <b>pattern[x]</b> (). 1427 * creating it if it does 1428 * not exist. Will not return <code>null</code>. 1429 * 1430 * <p> 1431 * <b>Definition:</b> 1432 * Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-sensitive, accent-sensitive, etc.). 1433 * </p> 1434 */ 1435 public IDatatype getPattern() { 1436 return myPattern; 1437 } 1438 1439 /** 1440 * Sets the value(s) for <b>pattern[x]</b> () 1441 * 1442 * <p> 1443 * <b>Definition:</b> 1444 * Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-sensitive, accent-sensitive, etc.). 1445 * </p> 1446 */ 1447 public ElementDefinitionDt setPattern(IDatatype theValue) { 1448 myPattern = theValue; 1449 return this; 1450 } 1451 1452 1453 1454 1455 /** 1456 * Gets the value(s) for <b>example[x]</b> (). 1457 * creating it if it does 1458 * not exist. Will not return <code>null</code>. 1459 * 1460 * <p> 1461 * <b>Definition:</b> 1462 * A sample value for this element demonstrating the type of information that would typically be captured. 1463 * </p> 1464 */ 1465 public IDatatype getExample() { 1466 return myExample; 1467 } 1468 1469 /** 1470 * Sets the value(s) for <b>example[x]</b> () 1471 * 1472 * <p> 1473 * <b>Definition:</b> 1474 * A sample value for this element demonstrating the type of information that would typically be captured. 1475 * </p> 1476 */ 1477 public ElementDefinitionDt setExample(IDatatype theValue) { 1478 myExample = theValue; 1479 return this; 1480 } 1481 1482 1483 1484 1485 /** 1486 * Gets the value(s) for <b>minValue[x]</b> (). 1487 * creating it if it does 1488 * not exist. Will not return <code>null</code>. 1489 * 1490 * <p> 1491 * <b>Definition:</b> 1492 * The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity 1493 * </p> 1494 */ 1495 public IDatatype getMinValue() { 1496 return myMinValue; 1497 } 1498 1499 /** 1500 * Sets the value(s) for <b>minValue[x]</b> () 1501 * 1502 * <p> 1503 * <b>Definition:</b> 1504 * The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity 1505 * </p> 1506 */ 1507 public ElementDefinitionDt setMinValue(IDatatype theValue) { 1508 myMinValue = theValue; 1509 return this; 1510 } 1511 1512 1513 1514 1515 /** 1516 * Gets the value(s) for <b>maxValue[x]</b> (). 1517 * creating it if it does 1518 * not exist. Will not return <code>null</code>. 1519 * 1520 * <p> 1521 * <b>Definition:</b> 1522 * The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity 1523 * </p> 1524 */ 1525 public IDatatype getMaxValue() { 1526 return myMaxValue; 1527 } 1528 1529 /** 1530 * Sets the value(s) for <b>maxValue[x]</b> () 1531 * 1532 * <p> 1533 * <b>Definition:</b> 1534 * The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity 1535 * </p> 1536 */ 1537 public ElementDefinitionDt setMaxValue(IDatatype theValue) { 1538 myMaxValue = theValue; 1539 return this; 1540 } 1541 1542 1543 1544 1545 /** 1546 * Gets the value(s) for <b>maxLength</b> (). 1547 * creating it if it does 1548 * not exist. Will not return <code>null</code>. 1549 * 1550 * <p> 1551 * <b>Definition:</b> 1552 * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element 1553 * </p> 1554 */ 1555 public IntegerDt getMaxLengthElement() { 1556 if (myMaxLength == null) { 1557 myMaxLength = new IntegerDt(); 1558 } 1559 return myMaxLength; 1560 } 1561 1562 1563 /** 1564 * Gets the value(s) for <b>maxLength</b> (). 1565 * creating it if it does 1566 * not exist. This method may return <code>null</code>. 1567 * 1568 * <p> 1569 * <b>Definition:</b> 1570 * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element 1571 * </p> 1572 */ 1573 public Integer getMaxLength() { 1574 return getMaxLengthElement().getValue(); 1575 } 1576 1577 /** 1578 * Sets the value(s) for <b>maxLength</b> () 1579 * 1580 * <p> 1581 * <b>Definition:</b> 1582 * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element 1583 * </p> 1584 */ 1585 public ElementDefinitionDt setMaxLength(IntegerDt theValue) { 1586 myMaxLength = theValue; 1587 return this; 1588 } 1589 1590 1591 1592 /** 1593 * Sets the value for <b>maxLength</b> () 1594 * 1595 * <p> 1596 * <b>Definition:</b> 1597 * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element 1598 * </p> 1599 */ 1600 public ElementDefinitionDt setMaxLength( int theInteger) { 1601 myMaxLength = new IntegerDt(theInteger); 1602 return this; 1603 } 1604 1605 1606 /** 1607 * Gets the value(s) for <b>condition</b> (). 1608 * creating it if it does 1609 * not exist. Will not return <code>null</code>. 1610 * 1611 * <p> 1612 * <b>Definition:</b> 1613 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1614 * </p> 1615 */ 1616 public java.util.List<IdDt> getCondition() { 1617 if (myCondition == null) { 1618 myCondition = new java.util.ArrayList<IdDt>(); 1619 } 1620 return myCondition; 1621 } 1622 1623 /** 1624 * Sets the value(s) for <b>condition</b> () 1625 * 1626 * <p> 1627 * <b>Definition:</b> 1628 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1629 * </p> 1630 */ 1631 public ElementDefinitionDt setCondition(java.util.List<IdDt> theValue) { 1632 myCondition = theValue; 1633 return this; 1634 } 1635 1636 1637 1638 /** 1639 * Adds and returns a new value for <b>condition</b> () 1640 * 1641 * <p> 1642 * <b>Definition:</b> 1643 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1644 * </p> 1645 */ 1646 public IdDt addCondition() { 1647 IdDt newType = new IdDt(); 1648 getCondition().add(newType); 1649 return newType; 1650 } 1651 1652 /** 1653 * Adds a given new value for <b>condition</b> () 1654 * 1655 * <p> 1656 * <b>Definition:</b> 1657 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1658 * </p> 1659 * @param theValue The condition to add (must not be <code>null</code>) 1660 */ 1661 public ElementDefinitionDt addCondition(IdDt theValue) { 1662 if (theValue == null) { 1663 throw new NullPointerException("theValue must not be null"); 1664 } 1665 getCondition().add(theValue); 1666 return this; 1667 } 1668 1669 /** 1670 * Gets the first repetition for <b>condition</b> (), 1671 * creating it if it does not already exist. 1672 * 1673 * <p> 1674 * <b>Definition:</b> 1675 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1676 * </p> 1677 */ 1678 public IdDt getConditionFirstRep() { 1679 if (getCondition().isEmpty()) { 1680 return addCondition(); 1681 } 1682 return getCondition().get(0); 1683 } 1684 /** 1685 * Adds a new value for <b>condition</b> () 1686 * 1687 * <p> 1688 * <b>Definition:</b> 1689 * A reference to an invariant that may make additional statements about the cardinality or value in the instance 1690 * </p> 1691 * 1692 * @return Returns a reference to this object, to allow for simple chaining. 1693 */ 1694 public ElementDefinitionDt addCondition( String theId) { 1695 if (myCondition == null) { 1696 myCondition = new java.util.ArrayList<IdDt>(); 1697 } 1698 myCondition.add(new IdDt(theId)); 1699 return this; 1700 } 1701 1702 1703 /** 1704 * Gets the value(s) for <b>constraint</b> (). 1705 * creating it if it does 1706 * not exist. Will not return <code>null</code>. 1707 * 1708 * <p> 1709 * <b>Definition:</b> 1710 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 1711 * </p> 1712 */ 1713 public java.util.List<Constraint> getConstraint() { 1714 if (myConstraint == null) { 1715 myConstraint = new java.util.ArrayList<Constraint>(); 1716 } 1717 return myConstraint; 1718 } 1719 1720 /** 1721 * Sets the value(s) for <b>constraint</b> () 1722 * 1723 * <p> 1724 * <b>Definition:</b> 1725 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 1726 * </p> 1727 */ 1728 public ElementDefinitionDt setConstraint(java.util.List<Constraint> theValue) { 1729 myConstraint = theValue; 1730 return this; 1731 } 1732 1733 1734 1735 /** 1736 * Adds and returns a new value for <b>constraint</b> () 1737 * 1738 * <p> 1739 * <b>Definition:</b> 1740 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 1741 * </p> 1742 */ 1743 public Constraint addConstraint() { 1744 Constraint newType = new Constraint(); 1745 getConstraint().add(newType); 1746 return newType; 1747 } 1748 1749 /** 1750 * Adds a given new value for <b>constraint</b> () 1751 * 1752 * <p> 1753 * <b>Definition:</b> 1754 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 1755 * </p> 1756 * @param theValue The constraint to add (must not be <code>null</code>) 1757 */ 1758 public ElementDefinitionDt addConstraint(Constraint theValue) { 1759 if (theValue == null) { 1760 throw new NullPointerException("theValue must not be null"); 1761 } 1762 getConstraint().add(theValue); 1763 return this; 1764 } 1765 1766 /** 1767 * Gets the first repetition for <b>constraint</b> (), 1768 * creating it if it does not already exist. 1769 * 1770 * <p> 1771 * <b>Definition:</b> 1772 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 1773 * </p> 1774 */ 1775 public Constraint getConstraintFirstRep() { 1776 if (getConstraint().isEmpty()) { 1777 return addConstraint(); 1778 } 1779 return getConstraint().get(0); 1780 } 1781 1782 /** 1783 * Gets the value(s) for <b>mustSupport</b> (). 1784 * creating it if it does 1785 * not exist. Will not return <code>null</code>. 1786 * 1787 * <p> 1788 * <b>Definition:</b> 1789 * If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported 1790 * </p> 1791 */ 1792 public BooleanDt getMustSupportElement() { 1793 if (myMustSupport == null) { 1794 myMustSupport = new BooleanDt(); 1795 } 1796 return myMustSupport; 1797 } 1798 1799 1800 /** 1801 * Gets the value(s) for <b>mustSupport</b> (). 1802 * creating it if it does 1803 * not exist. This method may return <code>null</code>. 1804 * 1805 * <p> 1806 * <b>Definition:</b> 1807 * If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported 1808 * </p> 1809 */ 1810 public Boolean getMustSupport() { 1811 return getMustSupportElement().getValue(); 1812 } 1813 1814 /** 1815 * Sets the value(s) for <b>mustSupport</b> () 1816 * 1817 * <p> 1818 * <b>Definition:</b> 1819 * If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported 1820 * </p> 1821 */ 1822 public ElementDefinitionDt setMustSupport(BooleanDt theValue) { 1823 myMustSupport = theValue; 1824 return this; 1825 } 1826 1827 1828 1829 /** 1830 * Sets the value for <b>mustSupport</b> () 1831 * 1832 * <p> 1833 * <b>Definition:</b> 1834 * If true, implementations that produce or consume resources SHALL provide \"support\" for the element in some meaningful way. If false, the element may be ignored and not supported 1835 * </p> 1836 */ 1837 public ElementDefinitionDt setMustSupport( boolean theBoolean) { 1838 myMustSupport = new BooleanDt(theBoolean); 1839 return this; 1840 } 1841 1842 1843 /** 1844 * Gets the value(s) for <b>isModifier</b> (). 1845 * creating it if it does 1846 * not exist. Will not return <code>null</code>. 1847 * 1848 * <p> 1849 * <b>Definition:</b> 1850 * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. 1851 * </p> 1852 */ 1853 public BooleanDt getIsModifierElement() { 1854 if (myIsModifier == null) { 1855 myIsModifier = new BooleanDt(); 1856 } 1857 return myIsModifier; 1858 } 1859 1860 1861 /** 1862 * Gets the value(s) for <b>isModifier</b> (). 1863 * creating it if it does 1864 * not exist. This method may return <code>null</code>. 1865 * 1866 * <p> 1867 * <b>Definition:</b> 1868 * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. 1869 * </p> 1870 */ 1871 public Boolean getIsModifier() { 1872 return getIsModifierElement().getValue(); 1873 } 1874 1875 /** 1876 * Sets the value(s) for <b>isModifier</b> () 1877 * 1878 * <p> 1879 * <b>Definition:</b> 1880 * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. 1881 * </p> 1882 */ 1883 public ElementDefinitionDt setIsModifier(BooleanDt theValue) { 1884 myIsModifier = theValue; 1885 return this; 1886 } 1887 1888 1889 1890 /** 1891 * Sets the value for <b>isModifier</b> () 1892 * 1893 * <p> 1894 * <b>Definition:</b> 1895 * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. 1896 * </p> 1897 */ 1898 public ElementDefinitionDt setIsModifier( boolean theBoolean) { 1899 myIsModifier = new BooleanDt(theBoolean); 1900 return this; 1901 } 1902 1903 1904 /** 1905 * Gets the value(s) for <b>isSummary</b> (). 1906 * creating it if it does 1907 * not exist. Will not return <code>null</code>. 1908 * 1909 * <p> 1910 * <b>Definition:</b> 1911 * Whether the element should be included if a client requests a search with the parameter _summary=true 1912 * </p> 1913 */ 1914 public BooleanDt getIsSummaryElement() { 1915 if (myIsSummary == null) { 1916 myIsSummary = new BooleanDt(); 1917 } 1918 return myIsSummary; 1919 } 1920 1921 1922 /** 1923 * Gets the value(s) for <b>isSummary</b> (). 1924 * creating it if it does 1925 * not exist. This method may return <code>null</code>. 1926 * 1927 * <p> 1928 * <b>Definition:</b> 1929 * Whether the element should be included if a client requests a search with the parameter _summary=true 1930 * </p> 1931 */ 1932 public Boolean getIsSummary() { 1933 return getIsSummaryElement().getValue(); 1934 } 1935 1936 /** 1937 * Sets the value(s) for <b>isSummary</b> () 1938 * 1939 * <p> 1940 * <b>Definition:</b> 1941 * Whether the element should be included if a client requests a search with the parameter _summary=true 1942 * </p> 1943 */ 1944 public ElementDefinitionDt setIsSummary(BooleanDt theValue) { 1945 myIsSummary = theValue; 1946 return this; 1947 } 1948 1949 1950 1951 /** 1952 * Sets the value for <b>isSummary</b> () 1953 * 1954 * <p> 1955 * <b>Definition:</b> 1956 * Whether the element should be included if a client requests a search with the parameter _summary=true 1957 * </p> 1958 */ 1959 public ElementDefinitionDt setIsSummary( boolean theBoolean) { 1960 myIsSummary = new BooleanDt(theBoolean); 1961 return this; 1962 } 1963 1964 1965 /** 1966 * Gets the value(s) for <b>binding</b> (). 1967 * creating it if it does 1968 * not exist. Will not return <code>null</code>. 1969 * 1970 * <p> 1971 * <b>Definition:</b> 1972 * Binds to a value set if this element is coded (code, Coding, CodeableConcept) 1973 * </p> 1974 */ 1975 public Binding getBinding() { 1976 if (myBinding == null) { 1977 myBinding = new Binding(); 1978 } 1979 return myBinding; 1980 } 1981 1982 /** 1983 * Sets the value(s) for <b>binding</b> () 1984 * 1985 * <p> 1986 * <b>Definition:</b> 1987 * Binds to a value set if this element is coded (code, Coding, CodeableConcept) 1988 * </p> 1989 */ 1990 public ElementDefinitionDt setBinding(Binding theValue) { 1991 myBinding = theValue; 1992 return this; 1993 } 1994 1995 1996 1997 1998 /** 1999 * Gets the value(s) for <b>mapping</b> (). 2000 * creating it if it does 2001 * not exist. Will not return <code>null</code>. 2002 * 2003 * <p> 2004 * <b>Definition:</b> 2005 * Identifies a concept from an external specification that roughly corresponds to this element 2006 * </p> 2007 */ 2008 public java.util.List<Mapping> getMapping() { 2009 if (myMapping == null) { 2010 myMapping = new java.util.ArrayList<Mapping>(); 2011 } 2012 return myMapping; 2013 } 2014 2015 /** 2016 * Sets the value(s) for <b>mapping</b> () 2017 * 2018 * <p> 2019 * <b>Definition:</b> 2020 * Identifies a concept from an external specification that roughly corresponds to this element 2021 * </p> 2022 */ 2023 public ElementDefinitionDt setMapping(java.util.List<Mapping> theValue) { 2024 myMapping = theValue; 2025 return this; 2026 } 2027 2028 2029 2030 /** 2031 * Adds and returns a new value for <b>mapping</b> () 2032 * 2033 * <p> 2034 * <b>Definition:</b> 2035 * Identifies a concept from an external specification that roughly corresponds to this element 2036 * </p> 2037 */ 2038 public Mapping addMapping() { 2039 Mapping newType = new Mapping(); 2040 getMapping().add(newType); 2041 return newType; 2042 } 2043 2044 /** 2045 * Adds a given new value for <b>mapping</b> () 2046 * 2047 * <p> 2048 * <b>Definition:</b> 2049 * Identifies a concept from an external specification that roughly corresponds to this element 2050 * </p> 2051 * @param theValue The mapping to add (must not be <code>null</code>) 2052 */ 2053 public ElementDefinitionDt addMapping(Mapping theValue) { 2054 if (theValue == null) { 2055 throw new NullPointerException("theValue must not be null"); 2056 } 2057 getMapping().add(theValue); 2058 return this; 2059 } 2060 2061 /** 2062 * Gets the first repetition for <b>mapping</b> (), 2063 * creating it if it does not already exist. 2064 * 2065 * <p> 2066 * <b>Definition:</b> 2067 * Identifies a concept from an external specification that roughly corresponds to this element 2068 * </p> 2069 */ 2070 public Mapping getMappingFirstRep() { 2071 if (getMapping().isEmpty()) { 2072 return addMapping(); 2073 } 2074 return getMapping().get(0); 2075 } 2076 2077 /** 2078 * Block class for child element: <b>ElementDefinition.slicing</b> () 2079 * 2080 * <p> 2081 * <b>Definition:</b> 2082 * Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set) 2083 * </p> 2084 */ 2085 @Block() 2086 public static class Slicing 2087 extends BaseIdentifiableElement implements IResourceBlock { 2088 2089 @Child(name="discriminator", type=StringDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 2090 @Description( 2091 shortDefinition="", 2092 formalDefinition="Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices" 2093 ) 2094 private java.util.List<StringDt> myDiscriminator; 2095 2096 @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=true, modifier=false) 2097 @Description( 2098 shortDefinition="", 2099 formalDefinition="A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated" 2100 ) 2101 private StringDt myDescription; 2102 2103 @Child(name="ordered", type=BooleanDt.class, order=2, min=0, max=1, summary=true, modifier=false) 2104 @Description( 2105 shortDefinition="", 2106 formalDefinition="If the matching elements have to occur in the same order as defined in the profile" 2107 ) 2108 private BooleanDt myOrdered; 2109 2110 @Child(name="rules", type=CodeDt.class, order=3, min=1, max=1, summary=true, modifier=false) 2111 @Description( 2112 shortDefinition="", 2113 formalDefinition="Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end" 2114 ) 2115 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/resource-slicing-rules") 2116 private BoundCodeDt<SlicingRulesEnum> myRules; 2117 2118 2119 @Override 2120 public boolean isEmpty() { 2121 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myDiscriminator, myDescription, myOrdered, myRules); 2122 } 2123 2124 @Override 2125 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 2126 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myDiscriminator, myDescription, myOrdered, myRules); 2127 } 2128 2129 /** 2130 * Gets the value(s) for <b>discriminator</b> (). 2131 * creating it if it does 2132 * not exist. Will not return <code>null</code>. 2133 * 2134 * <p> 2135 * <b>Definition:</b> 2136 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2137 * </p> 2138 */ 2139 public java.util.List<StringDt> getDiscriminator() { 2140 if (myDiscriminator == null) { 2141 myDiscriminator = new java.util.ArrayList<StringDt>(); 2142 } 2143 return myDiscriminator; 2144 } 2145 2146 /** 2147 * Sets the value(s) for <b>discriminator</b> () 2148 * 2149 * <p> 2150 * <b>Definition:</b> 2151 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2152 * </p> 2153 */ 2154 public Slicing setDiscriminator(java.util.List<StringDt> theValue) { 2155 myDiscriminator = theValue; 2156 return this; 2157 } 2158 2159 2160 2161 /** 2162 * Adds and returns a new value for <b>discriminator</b> () 2163 * 2164 * <p> 2165 * <b>Definition:</b> 2166 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2167 * </p> 2168 */ 2169 public StringDt addDiscriminator() { 2170 StringDt newType = new StringDt(); 2171 getDiscriminator().add(newType); 2172 return newType; 2173 } 2174 2175 /** 2176 * Adds a given new value for <b>discriminator</b> () 2177 * 2178 * <p> 2179 * <b>Definition:</b> 2180 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2181 * </p> 2182 * @param theValue The discriminator to add (must not be <code>null</code>) 2183 */ 2184 public Slicing addDiscriminator(StringDt theValue) { 2185 if (theValue == null) { 2186 throw new NullPointerException("theValue must not be null"); 2187 } 2188 getDiscriminator().add(theValue); 2189 return this; 2190 } 2191 2192 /** 2193 * Gets the first repetition for <b>discriminator</b> (), 2194 * creating it if it does not already exist. 2195 * 2196 * <p> 2197 * <b>Definition:</b> 2198 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2199 * </p> 2200 */ 2201 public StringDt getDiscriminatorFirstRep() { 2202 if (getDiscriminator().isEmpty()) { 2203 return addDiscriminator(); 2204 } 2205 return getDiscriminator().get(0); 2206 } 2207 /** 2208 * Adds a new value for <b>discriminator</b> () 2209 * 2210 * <p> 2211 * <b>Definition:</b> 2212 * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices 2213 * </p> 2214 * 2215 * @return Returns a reference to this object, to allow for simple chaining. 2216 */ 2217 public Slicing addDiscriminator( String theString) { 2218 if (myDiscriminator == null) { 2219 myDiscriminator = new java.util.ArrayList<StringDt>(); 2220 } 2221 myDiscriminator.add(new StringDt(theString)); 2222 return this; 2223 } 2224 2225 2226 /** 2227 * Gets the value(s) for <b>description</b> (). 2228 * creating it if it does 2229 * not exist. Will not return <code>null</code>. 2230 * 2231 * <p> 2232 * <b>Definition:</b> 2233 * A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated 2234 * </p> 2235 */ 2236 public StringDt getDescriptionElement() { 2237 if (myDescription == null) { 2238 myDescription = new StringDt(); 2239 } 2240 return myDescription; 2241 } 2242 2243 2244 /** 2245 * Gets the value(s) for <b>description</b> (). 2246 * creating it if it does 2247 * not exist. This method may return <code>null</code>. 2248 * 2249 * <p> 2250 * <b>Definition:</b> 2251 * A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated 2252 * </p> 2253 */ 2254 public String getDescription() { 2255 return getDescriptionElement().getValue(); 2256 } 2257 2258 /** 2259 * Sets the value(s) for <b>description</b> () 2260 * 2261 * <p> 2262 * <b>Definition:</b> 2263 * A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated 2264 * </p> 2265 */ 2266 public Slicing setDescription(StringDt theValue) { 2267 myDescription = theValue; 2268 return this; 2269 } 2270 2271 2272 2273 /** 2274 * Sets the value for <b>description</b> () 2275 * 2276 * <p> 2277 * <b>Definition:</b> 2278 * A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated 2279 * </p> 2280 */ 2281 public Slicing setDescription( String theString) { 2282 myDescription = new StringDt(theString); 2283 return this; 2284 } 2285 2286 2287 /** 2288 * Gets the value(s) for <b>ordered</b> (). 2289 * creating it if it does 2290 * not exist. Will not return <code>null</code>. 2291 * 2292 * <p> 2293 * <b>Definition:</b> 2294 * If the matching elements have to occur in the same order as defined in the profile 2295 * </p> 2296 */ 2297 public BooleanDt getOrderedElement() { 2298 if (myOrdered == null) { 2299 myOrdered = new BooleanDt(); 2300 } 2301 return myOrdered; 2302 } 2303 2304 2305 /** 2306 * Gets the value(s) for <b>ordered</b> (). 2307 * creating it if it does 2308 * not exist. This method may return <code>null</code>. 2309 * 2310 * <p> 2311 * <b>Definition:</b> 2312 * If the matching elements have to occur in the same order as defined in the profile 2313 * </p> 2314 */ 2315 public Boolean getOrdered() { 2316 return getOrderedElement().getValue(); 2317 } 2318 2319 /** 2320 * Sets the value(s) for <b>ordered</b> () 2321 * 2322 * <p> 2323 * <b>Definition:</b> 2324 * If the matching elements have to occur in the same order as defined in the profile 2325 * </p> 2326 */ 2327 public Slicing setOrdered(BooleanDt theValue) { 2328 myOrdered = theValue; 2329 return this; 2330 } 2331 2332 2333 2334 /** 2335 * Sets the value for <b>ordered</b> () 2336 * 2337 * <p> 2338 * <b>Definition:</b> 2339 * If the matching elements have to occur in the same order as defined in the profile 2340 * </p> 2341 */ 2342 public Slicing setOrdered( boolean theBoolean) { 2343 myOrdered = new BooleanDt(theBoolean); 2344 return this; 2345 } 2346 2347 2348 /** 2349 * Gets the value(s) for <b>rules</b> (). 2350 * creating it if it does 2351 * not exist. Will not return <code>null</code>. 2352 * 2353 * <p> 2354 * <b>Definition:</b> 2355 * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end 2356 * </p> 2357 */ 2358 public BoundCodeDt<SlicingRulesEnum> getRulesElement() { 2359 if (myRules == null) { 2360 myRules = new BoundCodeDt<SlicingRulesEnum>(SlicingRulesEnum.VALUESET_BINDER); 2361 } 2362 return myRules; 2363 } 2364 2365 2366 /** 2367 * Gets the value(s) for <b>rules</b> (). 2368 * creating it if it does 2369 * not exist. This method may return <code>null</code>. 2370 * 2371 * <p> 2372 * <b>Definition:</b> 2373 * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end 2374 * </p> 2375 */ 2376 public String getRules() { 2377 return getRulesElement().getValue(); 2378 } 2379 2380 /** 2381 * Sets the value(s) for <b>rules</b> () 2382 * 2383 * <p> 2384 * <b>Definition:</b> 2385 * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end 2386 * </p> 2387 */ 2388 public Slicing setRules(BoundCodeDt<SlicingRulesEnum> theValue) { 2389 myRules = theValue; 2390 return this; 2391 } 2392 2393 2394 2395 /** 2396 * Sets the value(s) for <b>rules</b> () 2397 * 2398 * <p> 2399 * <b>Definition:</b> 2400 * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end 2401 * </p> 2402 */ 2403 public Slicing setRules(SlicingRulesEnum theValue) { 2404 setRules(new BoundCodeDt<SlicingRulesEnum>(SlicingRulesEnum.VALUESET_BINDER, theValue)); 2405 2406/* 2407 getRulesElement().setValueAsEnum(theValue); 2408*/ 2409 return this; 2410 } 2411 2412 2413 2414 2415 } 2416 2417 2418 /** 2419 * Block class for child element: <b>ElementDefinition.base</b> () 2420 * 2421 * <p> 2422 * <b>Definition:</b> 2423 * Information about the base definition of the element, provided to make it unncessary for tools to trace the deviation of the element through the derived and related profiles. This information is only provided where the element definition represents a constraint on another element definition, and must be present if there is a base element definition. 2424 * </p> 2425 */ 2426 @Block() 2427 public static class Base 2428 extends BaseIdentifiableElement implements IResourceBlock { 2429 2430 @Child(name="path", type=StringDt.class, order=0, min=1, max=1, summary=true, modifier=false) 2431 @Description( 2432 shortDefinition="", 2433 formalDefinition="The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base" 2434 ) 2435 private StringDt myPath; 2436 2437 @Child(name="min", type=IntegerDt.class, order=1, min=1, max=1, summary=true, modifier=false) 2438 @Description( 2439 shortDefinition="", 2440 formalDefinition="Minimum cardinality of the base element identified by the path" 2441 ) 2442 private IntegerDt myMin; 2443 2444 @Child(name="max", type=StringDt.class, order=2, min=1, max=1, summary=true, modifier=false) 2445 @Description( 2446 shortDefinition="", 2447 formalDefinition="Maximum cardinality of the base element identified by the path" 2448 ) 2449 private StringDt myMax; 2450 2451 2452 @Override 2453 public boolean isEmpty() { 2454 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myPath, myMin, myMax); 2455 } 2456 2457 @Override 2458 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 2459 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPath, myMin, myMax); 2460 } 2461 2462 /** 2463 * Gets the value(s) for <b>path</b> (). 2464 * creating it if it does 2465 * not exist. Will not return <code>null</code>. 2466 * 2467 * <p> 2468 * <b>Definition:</b> 2469 * The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base 2470 * </p> 2471 */ 2472 public StringDt getPathElement() { 2473 if (myPath == null) { 2474 myPath = new StringDt(); 2475 } 2476 return myPath; 2477 } 2478 2479 2480 /** 2481 * Gets the value(s) for <b>path</b> (). 2482 * creating it if it does 2483 * not exist. This method may return <code>null</code>. 2484 * 2485 * <p> 2486 * <b>Definition:</b> 2487 * The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base 2488 * </p> 2489 */ 2490 public String getPath() { 2491 return getPathElement().getValue(); 2492 } 2493 2494 /** 2495 * Sets the value(s) for <b>path</b> () 2496 * 2497 * <p> 2498 * <b>Definition:</b> 2499 * The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base 2500 * </p> 2501 */ 2502 public Base setPath(StringDt theValue) { 2503 myPath = theValue; 2504 return this; 2505 } 2506 2507 2508 2509 /** 2510 * Sets the value for <b>path</b> () 2511 * 2512 * <p> 2513 * <b>Definition:</b> 2514 * The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base 2515 * </p> 2516 */ 2517 public Base setPath( String theString) { 2518 myPath = new StringDt(theString); 2519 return this; 2520 } 2521 2522 2523 /** 2524 * Gets the value(s) for <b>min</b> (). 2525 * creating it if it does 2526 * not exist. Will not return <code>null</code>. 2527 * 2528 * <p> 2529 * <b>Definition:</b> 2530 * Minimum cardinality of the base element identified by the path 2531 * </p> 2532 */ 2533 public IntegerDt getMinElement() { 2534 if (myMin == null) { 2535 myMin = new IntegerDt(); 2536 } 2537 return myMin; 2538 } 2539 2540 2541 /** 2542 * Gets the value(s) for <b>min</b> (). 2543 * creating it if it does 2544 * not exist. This method may return <code>null</code>. 2545 * 2546 * <p> 2547 * <b>Definition:</b> 2548 * Minimum cardinality of the base element identified by the path 2549 * </p> 2550 */ 2551 public Integer getMin() { 2552 return getMinElement().getValue(); 2553 } 2554 2555 /** 2556 * Sets the value(s) for <b>min</b> () 2557 * 2558 * <p> 2559 * <b>Definition:</b> 2560 * Minimum cardinality of the base element identified by the path 2561 * </p> 2562 */ 2563 public Base setMin(IntegerDt theValue) { 2564 myMin = theValue; 2565 return this; 2566 } 2567 2568 2569 2570 /** 2571 * Sets the value for <b>min</b> () 2572 * 2573 * <p> 2574 * <b>Definition:</b> 2575 * Minimum cardinality of the base element identified by the path 2576 * </p> 2577 */ 2578 public Base setMin( int theInteger) { 2579 myMin = new IntegerDt(theInteger); 2580 return this; 2581 } 2582 2583 2584 /** 2585 * Gets the value(s) for <b>max</b> (). 2586 * creating it if it does 2587 * not exist. Will not return <code>null</code>. 2588 * 2589 * <p> 2590 * <b>Definition:</b> 2591 * Maximum cardinality of the base element identified by the path 2592 * </p> 2593 */ 2594 public StringDt getMaxElement() { 2595 if (myMax == null) { 2596 myMax = new StringDt(); 2597 } 2598 return myMax; 2599 } 2600 2601 2602 /** 2603 * Gets the value(s) for <b>max</b> (). 2604 * creating it if it does 2605 * not exist. This method may return <code>null</code>. 2606 * 2607 * <p> 2608 * <b>Definition:</b> 2609 * Maximum cardinality of the base element identified by the path 2610 * </p> 2611 */ 2612 public String getMax() { 2613 return getMaxElement().getValue(); 2614 } 2615 2616 /** 2617 * Sets the value(s) for <b>max</b> () 2618 * 2619 * <p> 2620 * <b>Definition:</b> 2621 * Maximum cardinality of the base element identified by the path 2622 * </p> 2623 */ 2624 public Base setMax(StringDt theValue) { 2625 myMax = theValue; 2626 return this; 2627 } 2628 2629 2630 2631 /** 2632 * Sets the value for <b>max</b> () 2633 * 2634 * <p> 2635 * <b>Definition:</b> 2636 * Maximum cardinality of the base element identified by the path 2637 * </p> 2638 */ 2639 public Base setMax( String theString) { 2640 myMax = new StringDt(theString); 2641 return this; 2642 } 2643 2644 2645 2646 2647 } 2648 2649 2650 /** 2651 * Block class for child element: <b>ElementDefinition.type</b> () 2652 * 2653 * <p> 2654 * <b>Definition:</b> 2655 * The data type or resource that the value of this element is permitted to be 2656 * </p> 2657 */ 2658 @Block() 2659 public static class Type 2660 extends BaseIdentifiableElement implements IResourceBlock { 2661 2662 @Child(name="code", type=CodeDt.class, order=0, min=1, max=1, summary=true, modifier=false) 2663 @Description( 2664 shortDefinition="", 2665 formalDefinition="Name of Data type or Resource that is a(or the) type used for this element" 2666 ) 2667 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/defined-types") 2668 private CodeDt myCode; 2669 2670 @Child(name="profile", type=UriDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 2671 @Description( 2672 shortDefinition="", 2673 formalDefinition="Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide" 2674 ) 2675 private java.util.List<UriDt> myProfile; 2676 2677 @Child(name="aggregation", type=CodeDt.class, order=2, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 2678 @Description( 2679 shortDefinition="", 2680 formalDefinition="If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle." 2681 ) 2682 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/resource-aggregation-mode") 2683 private java.util.List<BoundCodeDt<AggregationModeEnum>> myAggregation; 2684 2685 2686 @Override 2687 public boolean isEmpty() { 2688 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myCode, myProfile, myAggregation); 2689 } 2690 2691 @Override 2692 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 2693 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCode, myProfile, myAggregation); 2694 } 2695 2696 /** 2697 * Gets the value(s) for <b>code</b> (). 2698 * creating it if it does 2699 * not exist. Will not return <code>null</code>. 2700 * 2701 * <p> 2702 * <b>Definition:</b> 2703 * Name of Data type or Resource that is a(or the) type used for this element 2704 * </p> 2705 */ 2706 public CodeDt getCodeElement() { 2707 if (myCode == null) { 2708 myCode = new CodeDt(); 2709 } 2710 return myCode; 2711 } 2712 2713 2714 /** 2715 * Gets the value(s) for <b>code</b> (). 2716 * creating it if it does 2717 * not exist. This method may return <code>null</code>. 2718 * 2719 * <p> 2720 * <b>Definition:</b> 2721 * Name of Data type or Resource that is a(or the) type used for this element 2722 * </p> 2723 */ 2724 public String getCode() { 2725 return getCodeElement().getValue(); 2726 } 2727 2728 /** 2729 * Sets the value(s) for <b>code</b> () 2730 * 2731 * <p> 2732 * <b>Definition:</b> 2733 * Name of Data type or Resource that is a(or the) type used for this element 2734 * </p> 2735 */ 2736 public Type setCode(CodeDt theValue) { 2737 myCode = theValue; 2738 return this; 2739 } 2740 2741 2742 2743 /** 2744 * Sets the value for <b>code</b> () 2745 * 2746 * <p> 2747 * <b>Definition:</b> 2748 * Name of Data type or Resource that is a(or the) type used for this element 2749 * </p> 2750 */ 2751 public Type setCode( String theCode) { 2752 myCode = new CodeDt(theCode); 2753 return this; 2754 } 2755 2756 2757 /** 2758 * Gets the value(s) for <b>profile</b> (). 2759 * creating it if it does 2760 * not exist. Will not return <code>null</code>. 2761 * 2762 * <p> 2763 * <b>Definition:</b> 2764 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2765 * </p> 2766 */ 2767 public java.util.List<UriDt> getProfile() { 2768 if (myProfile == null) { 2769 myProfile = new java.util.ArrayList<UriDt>(); 2770 } 2771 return myProfile; 2772 } 2773 2774 /** 2775 * Sets the value(s) for <b>profile</b> () 2776 * 2777 * <p> 2778 * <b>Definition:</b> 2779 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2780 * </p> 2781 */ 2782 public Type setProfile(java.util.List<UriDt> theValue) { 2783 myProfile = theValue; 2784 return this; 2785 } 2786 2787 2788 2789 /** 2790 * Adds and returns a new value for <b>profile</b> () 2791 * 2792 * <p> 2793 * <b>Definition:</b> 2794 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2795 * </p> 2796 */ 2797 public UriDt addProfile() { 2798 UriDt newType = new UriDt(); 2799 getProfile().add(newType); 2800 return newType; 2801 } 2802 2803 /** 2804 * Adds a given new value for <b>profile</b> () 2805 * 2806 * <p> 2807 * <b>Definition:</b> 2808 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2809 * </p> 2810 * @param theValue The profile to add (must not be <code>null</code>) 2811 */ 2812 public Type addProfile(UriDt theValue) { 2813 if (theValue == null) { 2814 throw new NullPointerException("theValue must not be null"); 2815 } 2816 getProfile().add(theValue); 2817 return this; 2818 } 2819 2820 /** 2821 * Gets the first repetition for <b>profile</b> (), 2822 * creating it if it does not already exist. 2823 * 2824 * <p> 2825 * <b>Definition:</b> 2826 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2827 * </p> 2828 */ 2829 public UriDt getProfileFirstRep() { 2830 if (getProfile().isEmpty()) { 2831 return addProfile(); 2832 } 2833 return getProfile().get(0); 2834 } 2835 /** 2836 * Adds a new value for <b>profile</b> () 2837 * 2838 * <p> 2839 * <b>Definition:</b> 2840 * Identifies a profile structure or implementation Guide that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. When more than one profile is specified, the content must conform to all of them. When an implementation guide is specified, the resource SHALL conform to at least one profile defined in the implementation guide 2841 * </p> 2842 * 2843 * @return Returns a reference to this object, to allow for simple chaining. 2844 */ 2845 public Type addProfile( String theUri) { 2846 if (myProfile == null) { 2847 myProfile = new java.util.ArrayList<UriDt>(); 2848 } 2849 myProfile.add(new UriDt(theUri)); 2850 return this; 2851 } 2852 2853 2854 /** 2855 * Gets the value(s) for <b>aggregation</b> (). 2856 * creating it if it does 2857 * not exist. Will not return <code>null</code>. 2858 * 2859 * <p> 2860 * <b>Definition:</b> 2861 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2862 * </p> 2863 */ 2864 public java.util.List<BoundCodeDt<AggregationModeEnum>> getAggregation() { 2865 if (myAggregation == null) { 2866 myAggregation = new java.util.ArrayList<BoundCodeDt<AggregationModeEnum>>(); 2867 } 2868 return myAggregation; 2869 } 2870 2871 /** 2872 * Sets the value(s) for <b>aggregation</b> () 2873 * 2874 * <p> 2875 * <b>Definition:</b> 2876 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2877 * </p> 2878 */ 2879 public Type setAggregation(java.util.List<BoundCodeDt<AggregationModeEnum>> theValue) { 2880 myAggregation = theValue; 2881 return this; 2882 } 2883 2884 2885 2886 /** 2887 * Add a value for <b>aggregation</b> () using an enumerated type. This 2888 * is intended as a convenience method for situations where the FHIR defined ValueSets are mandatory 2889 * or contain the desirable codes. If you wish to use codes other than those which are built-in, 2890 * you may also use the {@link #addAggregation()} method. 2891 * 2892 * <p> 2893 * <b>Definition:</b> 2894 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2895 * </p> 2896 */ 2897 public BoundCodeDt<AggregationModeEnum> addAggregation(AggregationModeEnum theValue) { 2898 BoundCodeDt<AggregationModeEnum> retVal = new BoundCodeDt<AggregationModeEnum>(AggregationModeEnum.VALUESET_BINDER, theValue); 2899 getAggregation().add(retVal); 2900 return retVal; 2901 } 2902 2903 /** 2904 * Gets the first repetition for <b>aggregation</b> (), 2905 * creating it if it does not already exist. 2906 * 2907 * <p> 2908 * <b>Definition:</b> 2909 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2910 * </p> 2911 */ 2912 public BoundCodeDt<AggregationModeEnum> getAggregationFirstRep() { 2913 if (getAggregation().size() == 0) { 2914 addAggregation(); 2915 } 2916 return getAggregation().get(0); 2917 } 2918 2919 /** 2920 * Add a value for <b>aggregation</b> () 2921 * 2922 * <p> 2923 * <b>Definition:</b> 2924 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2925 * </p> 2926 */ 2927 public BoundCodeDt<AggregationModeEnum> addAggregation() { 2928 BoundCodeDt<AggregationModeEnum> retVal = new BoundCodeDt<AggregationModeEnum>(AggregationModeEnum.VALUESET_BINDER); 2929 getAggregation().add(retVal); 2930 return retVal; 2931 } 2932 2933 /** 2934 * Sets the value(s), and clears any existing value(s) for <b>aggregation</b> () 2935 * 2936 * <p> 2937 * <b>Definition:</b> 2938 * If the type is a reference to another resource, how the resource is or can be aggregated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. 2939 * </p> 2940 */ 2941 public Type setAggregation(AggregationModeEnum theValue) { 2942 getAggregation().clear(); 2943 addAggregation(theValue); 2944 return this; 2945 } 2946 2947 2948 2949 2950 } 2951 2952 2953 /** 2954 * Block class for child element: <b>ElementDefinition.constraint</b> () 2955 * 2956 * <p> 2957 * <b>Definition:</b> 2958 * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance 2959 * </p> 2960 */ 2961 @Block() 2962 public static class Constraint 2963 extends BaseIdentifiableElement implements IResourceBlock { 2964 2965 @Child(name="key", type=IdDt.class, order=0, min=1, max=1, summary=true, modifier=false) 2966 @Description( 2967 shortDefinition="", 2968 formalDefinition="Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality" 2969 ) 2970 private IdDt myKey; 2971 2972 @Child(name="requirements", type=StringDt.class, order=1, min=0, max=1, summary=true, modifier=false) 2973 @Description( 2974 shortDefinition="", 2975 formalDefinition="Description of why this constraint is necessary or appropriate" 2976 ) 2977 private StringDt myRequirements; 2978 2979 @Child(name="severity", type=CodeDt.class, order=2, min=1, max=1, summary=true, modifier=false) 2980 @Description( 2981 shortDefinition="", 2982 formalDefinition="Identifies the impact constraint violation has on the conformance of the instance" 2983 ) 2984 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/constraint-severity") 2985 private BoundCodeDt<ConstraintSeverityEnum> mySeverity; 2986 2987 @Child(name="human", type=StringDt.class, order=3, min=1, max=1, summary=true, modifier=false) 2988 @Description( 2989 shortDefinition="", 2990 formalDefinition="Text that can be used to describe the constraint in messages identifying that the constraint has been violated" 2991 ) 2992 private StringDt myHuman; 2993 2994 @Child(name="xpath", type=StringDt.class, order=4, min=1, max=1, summary=true, modifier=false) 2995 @Description( 2996 shortDefinition="", 2997 formalDefinition="An XPath expression of constraint that can be executed to see if this constraint is met" 2998 ) 2999 private StringDt myXpath; 3000 3001 3002 @Override 3003 public boolean isEmpty() { 3004 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myKey, myRequirements, mySeverity, myHuman, myXpath); 3005 } 3006 3007 @Override 3008 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 3009 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myKey, myRequirements, mySeverity, myHuman, myXpath); 3010 } 3011 3012 /** 3013 * Gets the value(s) for <b>key</b> (). 3014 * creating it if it does 3015 * not exist. Will not return <code>null</code>. 3016 * 3017 * <p> 3018 * <b>Definition:</b> 3019 * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality 3020 * </p> 3021 */ 3022 public IdDt getKeyElement() { 3023 if (myKey == null) { 3024 myKey = new IdDt(); 3025 } 3026 return myKey; 3027 } 3028 3029 3030 /** 3031 * Gets the value(s) for <b>key</b> (). 3032 * creating it if it does 3033 * not exist. This method may return <code>null</code>. 3034 * 3035 * <p> 3036 * <b>Definition:</b> 3037 * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality 3038 * </p> 3039 */ 3040 public String getKey() { 3041 return getKeyElement().getValue(); 3042 } 3043 3044 /** 3045 * Sets the value(s) for <b>key</b> () 3046 * 3047 * <p> 3048 * <b>Definition:</b> 3049 * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality 3050 * </p> 3051 */ 3052 public Constraint setKey(IdDt theValue) { 3053 myKey = theValue; 3054 return this; 3055 } 3056 3057 3058 3059 /** 3060 * Sets the value for <b>key</b> () 3061 * 3062 * <p> 3063 * <b>Definition:</b> 3064 * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality 3065 * </p> 3066 */ 3067 public Constraint setKey( String theId) { 3068 myKey = new IdDt(theId); 3069 return this; 3070 } 3071 3072 3073 /** 3074 * Gets the value(s) for <b>requirements</b> (). 3075 * creating it if it does 3076 * not exist. Will not return <code>null</code>. 3077 * 3078 * <p> 3079 * <b>Definition:</b> 3080 * Description of why this constraint is necessary or appropriate 3081 * </p> 3082 */ 3083 public StringDt getRequirementsElement() { 3084 if (myRequirements == null) { 3085 myRequirements = new StringDt(); 3086 } 3087 return myRequirements; 3088 } 3089 3090 3091 /** 3092 * Gets the value(s) for <b>requirements</b> (). 3093 * creating it if it does 3094 * not exist. This method may return <code>null</code>. 3095 * 3096 * <p> 3097 * <b>Definition:</b> 3098 * Description of why this constraint is necessary or appropriate 3099 * </p> 3100 */ 3101 public String getRequirements() { 3102 return getRequirementsElement().getValue(); 3103 } 3104 3105 /** 3106 * Sets the value(s) for <b>requirements</b> () 3107 * 3108 * <p> 3109 * <b>Definition:</b> 3110 * Description of why this constraint is necessary or appropriate 3111 * </p> 3112 */ 3113 public Constraint setRequirements(StringDt theValue) { 3114 myRequirements = theValue; 3115 return this; 3116 } 3117 3118 3119 3120 /** 3121 * Sets the value for <b>requirements</b> () 3122 * 3123 * <p> 3124 * <b>Definition:</b> 3125 * Description of why this constraint is necessary or appropriate 3126 * </p> 3127 */ 3128 public Constraint setRequirements( String theString) { 3129 myRequirements = new StringDt(theString); 3130 return this; 3131 } 3132 3133 3134 /** 3135 * Gets the value(s) for <b>severity</b> (). 3136 * creating it if it does 3137 * not exist. Will not return <code>null</code>. 3138 * 3139 * <p> 3140 * <b>Definition:</b> 3141 * Identifies the impact constraint violation has on the conformance of the instance 3142 * </p> 3143 */ 3144 public BoundCodeDt<ConstraintSeverityEnum> getSeverityElement() { 3145 if (mySeverity == null) { 3146 mySeverity = new BoundCodeDt<ConstraintSeverityEnum>(ConstraintSeverityEnum.VALUESET_BINDER); 3147 } 3148 return mySeverity; 3149 } 3150 3151 3152 /** 3153 * Gets the value(s) for <b>severity</b> (). 3154 * creating it if it does 3155 * not exist. This method may return <code>null</code>. 3156 * 3157 * <p> 3158 * <b>Definition:</b> 3159 * Identifies the impact constraint violation has on the conformance of the instance 3160 * </p> 3161 */ 3162 public String getSeverity() { 3163 return getSeverityElement().getValue(); 3164 } 3165 3166 /** 3167 * Sets the value(s) for <b>severity</b> () 3168 * 3169 * <p> 3170 * <b>Definition:</b> 3171 * Identifies the impact constraint violation has on the conformance of the instance 3172 * </p> 3173 */ 3174 public Constraint setSeverity(BoundCodeDt<ConstraintSeverityEnum> theValue) { 3175 mySeverity = theValue; 3176 return this; 3177 } 3178 3179 3180 3181 /** 3182 * Sets the value(s) for <b>severity</b> () 3183 * 3184 * <p> 3185 * <b>Definition:</b> 3186 * Identifies the impact constraint violation has on the conformance of the instance 3187 * </p> 3188 */ 3189 public Constraint setSeverity(ConstraintSeverityEnum theValue) { 3190 setSeverity(new BoundCodeDt<ConstraintSeverityEnum>(ConstraintSeverityEnum.VALUESET_BINDER, theValue)); 3191 3192/* 3193 getSeverityElement().setValueAsEnum(theValue); 3194*/ 3195 return this; 3196 } 3197 3198 3199 /** 3200 * Gets the value(s) for <b>human</b> (). 3201 * creating it if it does 3202 * not exist. Will not return <code>null</code>. 3203 * 3204 * <p> 3205 * <b>Definition:</b> 3206 * Text that can be used to describe the constraint in messages identifying that the constraint has been violated 3207 * </p> 3208 */ 3209 public StringDt getHumanElement() { 3210 if (myHuman == null) { 3211 myHuman = new StringDt(); 3212 } 3213 return myHuman; 3214 } 3215 3216 3217 /** 3218 * Gets the value(s) for <b>human</b> (). 3219 * creating it if it does 3220 * not exist. This method may return <code>null</code>. 3221 * 3222 * <p> 3223 * <b>Definition:</b> 3224 * Text that can be used to describe the constraint in messages identifying that the constraint has been violated 3225 * </p> 3226 */ 3227 public String getHuman() { 3228 return getHumanElement().getValue(); 3229 } 3230 3231 /** 3232 * Sets the value(s) for <b>human</b> () 3233 * 3234 * <p> 3235 * <b>Definition:</b> 3236 * Text that can be used to describe the constraint in messages identifying that the constraint has been violated 3237 * </p> 3238 */ 3239 public Constraint setHuman(StringDt theValue) { 3240 myHuman = theValue; 3241 return this; 3242 } 3243 3244 3245 3246 /** 3247 * Sets the value for <b>human</b> () 3248 * 3249 * <p> 3250 * <b>Definition:</b> 3251 * Text that can be used to describe the constraint in messages identifying that the constraint has been violated 3252 * </p> 3253 */ 3254 public Constraint setHuman( String theString) { 3255 myHuman = new StringDt(theString); 3256 return this; 3257 } 3258 3259 3260 /** 3261 * Gets the value(s) for <b>xpath</b> (). 3262 * creating it if it does 3263 * not exist. Will not return <code>null</code>. 3264 * 3265 * <p> 3266 * <b>Definition:</b> 3267 * An XPath expression of constraint that can be executed to see if this constraint is met 3268 * </p> 3269 */ 3270 public StringDt getXpathElement() { 3271 if (myXpath == null) { 3272 myXpath = new StringDt(); 3273 } 3274 return myXpath; 3275 } 3276 3277 3278 /** 3279 * Gets the value(s) for <b>xpath</b> (). 3280 * creating it if it does 3281 * not exist. This method may return <code>null</code>. 3282 * 3283 * <p> 3284 * <b>Definition:</b> 3285 * An XPath expression of constraint that can be executed to see if this constraint is met 3286 * </p> 3287 */ 3288 public String getXpath() { 3289 return getXpathElement().getValue(); 3290 } 3291 3292 /** 3293 * Sets the value(s) for <b>xpath</b> () 3294 * 3295 * <p> 3296 * <b>Definition:</b> 3297 * An XPath expression of constraint that can be executed to see if this constraint is met 3298 * </p> 3299 */ 3300 public Constraint setXpath(StringDt theValue) { 3301 myXpath = theValue; 3302 return this; 3303 } 3304 3305 3306 3307 /** 3308 * Sets the value for <b>xpath</b> () 3309 * 3310 * <p> 3311 * <b>Definition:</b> 3312 * An XPath expression of constraint that can be executed to see if this constraint is met 3313 * </p> 3314 */ 3315 public Constraint setXpath( String theString) { 3316 myXpath = new StringDt(theString); 3317 return this; 3318 } 3319 3320 3321 3322 3323 } 3324 3325 3326 /** 3327 * Block class for child element: <b>ElementDefinition.binding</b> () 3328 * 3329 * <p> 3330 * <b>Definition:</b> 3331 * Binds to a value set if this element is coded (code, Coding, CodeableConcept) 3332 * </p> 3333 */ 3334 @Block() 3335 public static class Binding 3336 extends BaseIdentifiableElement implements IResourceBlock { 3337 3338 @Child(name="strength", type=CodeDt.class, order=0, min=1, max=1, summary=true, modifier=false) 3339 @Description( 3340 shortDefinition="", 3341 formalDefinition="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances" 3342 ) 3343 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/binding-strength") 3344 private BoundCodeDt<BindingStrengthEnum> myStrength; 3345 3346 @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=true, modifier=false) 3347 @Description( 3348 shortDefinition="", 3349 formalDefinition="Describes the intended use of this particular set of codes" 3350 ) 3351 private StringDt myDescription; 3352 3353 @Child(name="valueSet", order=2, min=0, max=1, summary=true, modifier=false, type={ 3354 UriDt.class, ValueSet.class }) 3355 @Description( 3356 shortDefinition="", 3357 formalDefinition="Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used" 3358 ) 3359 private IDatatype myValueSet; 3360 3361 3362 @Override 3363 public boolean isEmpty() { 3364 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myStrength, myDescription, myValueSet); 3365 } 3366 3367 @Override 3368 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 3369 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myStrength, myDescription, myValueSet); 3370 } 3371 3372 /** 3373 * Gets the value(s) for <b>strength</b> (). 3374 * creating it if it does 3375 * not exist. Will not return <code>null</code>. 3376 * 3377 * <p> 3378 * <b>Definition:</b> 3379 * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances 3380 * </p> 3381 */ 3382 public BoundCodeDt<BindingStrengthEnum> getStrengthElement() { 3383 if (myStrength == null) { 3384 myStrength = new BoundCodeDt<BindingStrengthEnum>(BindingStrengthEnum.VALUESET_BINDER); 3385 } 3386 return myStrength; 3387 } 3388 3389 3390 /** 3391 * Gets the value(s) for <b>strength</b> (). 3392 * creating it if it does 3393 * not exist. This method may return <code>null</code>. 3394 * 3395 * <p> 3396 * <b>Definition:</b> 3397 * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances 3398 * </p> 3399 */ 3400 public String getStrength() { 3401 return getStrengthElement().getValue(); 3402 } 3403 3404 /** 3405 * Sets the value(s) for <b>strength</b> () 3406 * 3407 * <p> 3408 * <b>Definition:</b> 3409 * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances 3410 * </p> 3411 */ 3412 public Binding setStrength(BoundCodeDt<BindingStrengthEnum> theValue) { 3413 myStrength = theValue; 3414 return this; 3415 } 3416 3417 3418 3419 /** 3420 * Sets the value(s) for <b>strength</b> () 3421 * 3422 * <p> 3423 * <b>Definition:</b> 3424 * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances 3425 * </p> 3426 */ 3427 public Binding setStrength(BindingStrengthEnum theValue) { 3428 setStrength(new BoundCodeDt<BindingStrengthEnum>(BindingStrengthEnum.VALUESET_BINDER, theValue)); 3429 3430/* 3431 getStrengthElement().setValueAsEnum(theValue); 3432*/ 3433 return this; 3434 } 3435 3436 3437 /** 3438 * Gets the value(s) for <b>description</b> (). 3439 * creating it if it does 3440 * not exist. Will not return <code>null</code>. 3441 * 3442 * <p> 3443 * <b>Definition:</b> 3444 * Describes the intended use of this particular set of codes 3445 * </p> 3446 */ 3447 public StringDt getDescriptionElement() { 3448 if (myDescription == null) { 3449 myDescription = new StringDt(); 3450 } 3451 return myDescription; 3452 } 3453 3454 3455 /** 3456 * Gets the value(s) for <b>description</b> (). 3457 * creating it if it does 3458 * not exist. This method may return <code>null</code>. 3459 * 3460 * <p> 3461 * <b>Definition:</b> 3462 * Describes the intended use of this particular set of codes 3463 * </p> 3464 */ 3465 public String getDescription() { 3466 return getDescriptionElement().getValue(); 3467 } 3468 3469 /** 3470 * Sets the value(s) for <b>description</b> () 3471 * 3472 * <p> 3473 * <b>Definition:</b> 3474 * Describes the intended use of this particular set of codes 3475 * </p> 3476 */ 3477 public Binding setDescription(StringDt theValue) { 3478 myDescription = theValue; 3479 return this; 3480 } 3481 3482 3483 3484 /** 3485 * Sets the value for <b>description</b> () 3486 * 3487 * <p> 3488 * <b>Definition:</b> 3489 * Describes the intended use of this particular set of codes 3490 * </p> 3491 */ 3492 public Binding setDescription( String theString) { 3493 myDescription = new StringDt(theString); 3494 return this; 3495 } 3496 3497 3498 /** 3499 * Gets the value(s) for <b>valueSet[x]</b> (). 3500 * creating it if it does 3501 * not exist. Will not return <code>null</code>. 3502 * 3503 * <p> 3504 * <b>Definition:</b> 3505 * Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used 3506 * </p> 3507 */ 3508 public IDatatype getValueSet() { 3509 return myValueSet; 3510 } 3511 3512 /** 3513 * Sets the value(s) for <b>valueSet[x]</b> () 3514 * 3515 * <p> 3516 * <b>Definition:</b> 3517 * Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used 3518 * </p> 3519 */ 3520 public Binding setValueSet(IDatatype theValue) { 3521 myValueSet = theValue; 3522 return this; 3523 } 3524 3525 3526 3527 3528 3529 3530 } 3531 3532 3533 /** 3534 * Block class for child element: <b>ElementDefinition.mapping</b> () 3535 * 3536 * <p> 3537 * <b>Definition:</b> 3538 * Identifies a concept from an external specification that roughly corresponds to this element 3539 * </p> 3540 */ 3541 @Block() 3542 public static class Mapping 3543 extends BaseIdentifiableElement implements IResourceBlock { 3544 3545 @Child(name="identity", type=IdDt.class, order=0, min=1, max=1, summary=true, modifier=false) 3546 @Description( 3547 shortDefinition="", 3548 formalDefinition="An internal reference to the definition of a mapping" 3549 ) 3550 private IdDt myIdentity; 3551 3552 @Child(name="language", type=CodeDt.class, order=1, min=0, max=1, summary=true, modifier=false) 3553 @Description( 3554 shortDefinition="", 3555 formalDefinition="Identifies the computable language in which mapping.map is expressed." 3556 ) 3557 private CodeDt myLanguage; 3558 3559 @Child(name="map", type=StringDt.class, order=2, min=1, max=1, summary=true, modifier=false) 3560 @Description( 3561 shortDefinition="", 3562 formalDefinition="Expresses what part of the target specification corresponds to this element" 3563 ) 3564 private StringDt myMap; 3565 3566 3567 @Override 3568 public boolean isEmpty() { 3569 return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myIdentity, myLanguage, myMap); 3570 } 3571 3572 @Override 3573 public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) { 3574 return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentity, myLanguage, myMap); 3575 } 3576 3577 /** 3578 * Gets the value(s) for <b>identity</b> (). 3579 * creating it if it does 3580 * not exist. Will not return <code>null</code>. 3581 * 3582 * <p> 3583 * <b>Definition:</b> 3584 * An internal reference to the definition of a mapping 3585 * </p> 3586 */ 3587 public IdDt getIdentityElement() { 3588 if (myIdentity == null) { 3589 myIdentity = new IdDt(); 3590 } 3591 return myIdentity; 3592 } 3593 3594 3595 /** 3596 * Gets the value(s) for <b>identity</b> (). 3597 * creating it if it does 3598 * not exist. This method may return <code>null</code>. 3599 * 3600 * <p> 3601 * <b>Definition:</b> 3602 * An internal reference to the definition of a mapping 3603 * </p> 3604 */ 3605 public String getIdentity() { 3606 return getIdentityElement().getValue(); 3607 } 3608 3609 /** 3610 * Sets the value(s) for <b>identity</b> () 3611 * 3612 * <p> 3613 * <b>Definition:</b> 3614 * An internal reference to the definition of a mapping 3615 * </p> 3616 */ 3617 public Mapping setIdentity(IdDt theValue) { 3618 myIdentity = theValue; 3619 return this; 3620 } 3621 3622 3623 3624 /** 3625 * Sets the value for <b>identity</b> () 3626 * 3627 * <p> 3628 * <b>Definition:</b> 3629 * An internal reference to the definition of a mapping 3630 * </p> 3631 */ 3632 public Mapping setIdentity( String theId) { 3633 myIdentity = new IdDt(theId); 3634 return this; 3635 } 3636 3637 3638 /** 3639 * Gets the value(s) for <b>language</b> (). 3640 * creating it if it does 3641 * not exist. Will not return <code>null</code>. 3642 * 3643 * <p> 3644 * <b>Definition:</b> 3645 * Identifies the computable language in which mapping.map is expressed. 3646 * </p> 3647 */ 3648 public CodeDt getLanguageElement() { 3649 if (myLanguage == null) { 3650 myLanguage = new CodeDt(); 3651 } 3652 return myLanguage; 3653 } 3654 3655 3656 /** 3657 * Gets the value(s) for <b>language</b> (). 3658 * creating it if it does 3659 * not exist. This method may return <code>null</code>. 3660 * 3661 * <p> 3662 * <b>Definition:</b> 3663 * Identifies the computable language in which mapping.map is expressed. 3664 * </p> 3665 */ 3666 public String getLanguage() { 3667 return getLanguageElement().getValue(); 3668 } 3669 3670 /** 3671 * Sets the value(s) for <b>language</b> () 3672 * 3673 * <p> 3674 * <b>Definition:</b> 3675 * Identifies the computable language in which mapping.map is expressed. 3676 * </p> 3677 */ 3678 public Mapping setLanguage(CodeDt theValue) { 3679 myLanguage = theValue; 3680 return this; 3681 } 3682 3683 3684 3685 /** 3686 * Sets the value for <b>language</b> () 3687 * 3688 * <p> 3689 * <b>Definition:</b> 3690 * Identifies the computable language in which mapping.map is expressed. 3691 * </p> 3692 */ 3693 public Mapping setLanguage( String theCode) { 3694 myLanguage = new CodeDt(theCode); 3695 return this; 3696 } 3697 3698 3699 /** 3700 * Gets the value(s) for <b>map</b> (). 3701 * creating it if it does 3702 * not exist. Will not return <code>null</code>. 3703 * 3704 * <p> 3705 * <b>Definition:</b> 3706 * Expresses what part of the target specification corresponds to this element 3707 * </p> 3708 */ 3709 public StringDt getMapElement() { 3710 if (myMap == null) { 3711 myMap = new StringDt(); 3712 } 3713 return myMap; 3714 } 3715 3716 3717 /** 3718 * Gets the value(s) for <b>map</b> (). 3719 * creating it if it does 3720 * not exist. This method may return <code>null</code>. 3721 * 3722 * <p> 3723 * <b>Definition:</b> 3724 * Expresses what part of the target specification corresponds to this element 3725 * </p> 3726 */ 3727 public String getMap() { 3728 return getMapElement().getValue(); 3729 } 3730 3731 /** 3732 * Sets the value(s) for <b>map</b> () 3733 * 3734 * <p> 3735 * <b>Definition:</b> 3736 * Expresses what part of the target specification corresponds to this element 3737 * </p> 3738 */ 3739 public Mapping setMap(StringDt theValue) { 3740 myMap = theValue; 3741 return this; 3742 } 3743 3744 3745 3746 /** 3747 * Sets the value for <b>map</b> () 3748 * 3749 * <p> 3750 * <b>Definition:</b> 3751 * Expresses what part of the target specification corresponds to this element 3752 * </p> 3753 */ 3754 public Mapping setMap( String theString) { 3755 myMap = new StringDt(theString); 3756 return this; 3757 } 3758 3759 3760 3761 3762 } 3763 3764 3765 3766 3767}