001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseDatatypeElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.Child; 043import ca.uhn.fhir.model.api.annotation.ChildOrder; 044import ca.uhn.fhir.model.api.annotation.DatatypeDef; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.Block; 047 048import org.hl7.fhir.instance.model.api.IBaseMetaType; 049/** 050 * Meta Type: The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource. 051 */ 052@DatatypeDef(name="Meta") 053public class Meta extends DataType implements IBaseMetaType { 054 055 /** 056 * The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted. 057 */ 058 @Child(name = "versionId", type = {IdType.class}, order=0, min=0, max=1, modifier=false, summary=true) 059 @Description(shortDefinition="Version specific identifier", formalDefinition="The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." ) 060 protected IdType versionId; 061 062 /** 063 * When the resource last changed - e.g. when the version changed. 064 */ 065 @Child(name = "lastUpdated", type = {InstantType.class}, order=1, min=0, max=1, modifier=false, summary=true) 066 @Description(shortDefinition="When the resource version last changed", formalDefinition="When the resource last changed - e.g. when the version changed." ) 067 protected InstantType lastUpdated; 068 069 /** 070 * A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc. 071 */ 072 @Child(name = "source", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true) 073 @Description(shortDefinition="Identifies where the resource comes from", formalDefinition="A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc." ) 074 protected UriType source; 075 076 /** 077 * A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url). 078 */ 079 @Child(name = "profile", type = {CanonicalType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 080 @Description(shortDefinition="Profiles this resource claims to conform to", formalDefinition="A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." ) 081 protected List<CanonicalType> profile; 082 083 /** 084 * Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure. 085 */ 086 @Child(name = "security", type = {Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 087 @Description(shortDefinition="Security Labels applied to this resource", formalDefinition="Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." ) 088 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/security-labels") 089 protected List<Coding> security; 090 091 /** 092 * Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. 093 */ 094 @Child(name = "tag", type = {Coding.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 095 @Description(shortDefinition="Tags applied to this resource", formalDefinition="Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." ) 096 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/common-tags") 097 protected List<Coding> tag; 098 099 private static final long serialVersionUID = -1386695622L; 100 101 /** 102 * Constructor 103 */ 104 public Meta() { 105 super(); 106 } 107 108 /** 109 * @return {@link #versionId} (The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value 110 */ 111 public IdType getVersionIdElement() { 112 if (this.versionId == null) 113 if (Configuration.errorOnAutoCreate()) 114 throw new Error("Attempt to auto-create Meta.versionId"); 115 else if (Configuration.doAutoCreate()) 116 this.versionId = new IdType(); // bb 117 return this.versionId; 118 } 119 120 public boolean hasVersionIdElement() { 121 return this.versionId != null && !this.versionId.isEmpty(); 122 } 123 124 public boolean hasVersionId() { 125 return this.versionId != null && !this.versionId.isEmpty(); 126 } 127 128 /** 129 * @param value {@link #versionId} (The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value 130 */ 131 public Meta setVersionIdElement(IdType value) { 132 this.versionId = value; 133 return this; 134 } 135 136 /** 137 * @return The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted. 138 */ 139 public String getVersionId() { 140 return this.versionId == null ? null : this.versionId.getValue(); 141 } 142 143 /** 144 * @param value The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted. 145 */ 146 public Meta setVersionId(String value) { 147 if (Utilities.noString(value)) 148 this.versionId = null; 149 else { 150 if (this.versionId == null) 151 this.versionId = new IdType(); 152 this.versionId.setValue(value); 153 } 154 return this; 155 } 156 157 /** 158 * @return {@link #lastUpdated} (When the resource last changed - e.g. when the version changed.). This is the underlying object with id, value and extensions. The accessor "getLastUpdated" gives direct access to the value 159 */ 160 public InstantType getLastUpdatedElement() { 161 if (this.lastUpdated == null) 162 if (Configuration.errorOnAutoCreate()) 163 throw new Error("Attempt to auto-create Meta.lastUpdated"); 164 else if (Configuration.doAutoCreate()) 165 this.lastUpdated = new InstantType(); // bb 166 return this.lastUpdated; 167 } 168 169 public boolean hasLastUpdatedElement() { 170 return this.lastUpdated != null && !this.lastUpdated.isEmpty(); 171 } 172 173 public boolean hasLastUpdated() { 174 return this.lastUpdated != null && !this.lastUpdated.isEmpty(); 175 } 176 177 /** 178 * @param value {@link #lastUpdated} (When the resource last changed - e.g. when the version changed.). This is the underlying object with id, value and extensions. The accessor "getLastUpdated" gives direct access to the value 179 */ 180 public Meta setLastUpdatedElement(InstantType value) { 181 this.lastUpdated = value; 182 return this; 183 } 184 185 /** 186 * @return When the resource last changed - e.g. when the version changed. 187 */ 188 public Date getLastUpdated() { 189 return this.lastUpdated == null ? null : this.lastUpdated.getValue(); 190 } 191 192 /** 193 * @param value When the resource last changed - e.g. when the version changed. 194 */ 195 public Meta setLastUpdated(Date value) { 196 if (value == null) 197 this.lastUpdated = null; 198 else { 199 if (this.lastUpdated == null) 200 this.lastUpdated = new InstantType(); 201 this.lastUpdated.setValue(value); 202 } 203 return this; 204 } 205 206 /** 207 * @return {@link #source} (A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 208 */ 209 public UriType getSourceElement() { 210 if (this.source == null) 211 if (Configuration.errorOnAutoCreate()) 212 throw new Error("Attempt to auto-create Meta.source"); 213 else if (Configuration.doAutoCreate()) 214 this.source = new UriType(); // bb 215 return this.source; 216 } 217 218 public boolean hasSourceElement() { 219 return this.source != null && !this.source.isEmpty(); 220 } 221 222 public boolean hasSource() { 223 return this.source != null && !this.source.isEmpty(); 224 } 225 226 /** 227 * @param value {@link #source} (A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value 228 */ 229 public Meta setSourceElement(UriType value) { 230 this.source = value; 231 return this; 232 } 233 234 /** 235 * @return A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc. 236 */ 237 public String getSource() { 238 return this.source == null ? null : this.source.getValue(); 239 } 240 241 /** 242 * @param value A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc. 243 */ 244 public Meta setSource(String value) { 245 if (Utilities.noString(value)) 246 this.source = null; 247 else { 248 if (this.source == null) 249 this.source = new UriType(); 250 this.source.setValue(value); 251 } 252 return this; 253 } 254 255 /** 256 * @return {@link #profile} (A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).) 257 */ 258 public List<CanonicalType> getProfile() { 259 if (this.profile == null) 260 this.profile = new ArrayList<CanonicalType>(); 261 return this.profile; 262 } 263 264 /** 265 * @return Returns a reference to <code>this</code> for easy method chaining 266 */ 267 public Meta setProfile(List<CanonicalType> theProfile) { 268 this.profile = theProfile; 269 return this; 270 } 271 272 public boolean hasProfile() { 273 if (this.profile == null) 274 return false; 275 for (CanonicalType item : this.profile) 276 if (!item.isEmpty()) 277 return true; 278 return false; 279 } 280 281 /** 282 * @return {@link #profile} (A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).) 283 */ 284 public CanonicalType addProfileElement() {//2 285 CanonicalType t = new CanonicalType(); 286 if (this.profile == null) 287 this.profile = new ArrayList<CanonicalType>(); 288 this.profile.add(t); 289 return t; 290 } 291 292 /** 293 * @param value {@link #profile} (A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).) 294 */ 295 public Meta addProfile(String value) { //1 296 CanonicalType t = new CanonicalType(); 297 t.setValue(value); 298 if (this.profile == null) 299 this.profile = new ArrayList<CanonicalType>(); 300 this.profile.add(t); 301 return this; 302 } 303 304 /** 305 * @param value {@link #profile} (A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).) 306 */ 307 public boolean hasProfile(String value) { 308 if (this.profile == null) 309 return false; 310 for (CanonicalType v : this.profile) 311 if (v.getValue().equals(value)) // canonical 312 return true; 313 return false; 314 } 315 316 /** 317 * @return {@link #security} (Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.) 318 */ 319 public List<Coding> getSecurity() { 320 if (this.security == null) 321 this.security = new ArrayList<Coding>(); 322 return this.security; 323 } 324 325 /** 326 * @return Returns a reference to <code>this</code> for easy method chaining 327 */ 328 public Meta setSecurity(List<Coding> theSecurity) { 329 this.security = theSecurity; 330 return this; 331 } 332 333 public boolean hasSecurity() { 334 if (this.security == null) 335 return false; 336 for (Coding item : this.security) 337 if (!item.isEmpty()) 338 return true; 339 return false; 340 } 341 342 public Coding addSecurity() { //3 343 Coding t = new Coding(); 344 if (this.security == null) 345 this.security = new ArrayList<Coding>(); 346 this.security.add(t); 347 return t; 348 } 349 350 public Meta addSecurity(Coding t) { //3 351 if (t == null) 352 return this; 353 if (this.security == null) 354 this.security = new ArrayList<Coding>(); 355 this.security.add(t); 356 return this; 357 } 358 359 /** 360 * @return The first repetition of repeating field {@link #security}, creating it if it does not already exist {3} 361 */ 362 public Coding getSecurityFirstRep() { 363 if (getSecurity().isEmpty()) { 364 addSecurity(); 365 } 366 return getSecurity().get(0); 367 } 368 369 /** 370 * @return {@link #tag} (Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.) 371 */ 372 public List<Coding> getTag() { 373 if (this.tag == null) 374 this.tag = new ArrayList<Coding>(); 375 return this.tag; 376 } 377 378 /** 379 * @return Returns a reference to <code>this</code> for easy method chaining 380 */ 381 public Meta setTag(List<Coding> theTag) { 382 this.tag = theTag; 383 return this; 384 } 385 386 public boolean hasTag() { 387 if (this.tag == null) 388 return false; 389 for (Coding item : this.tag) 390 if (!item.isEmpty()) 391 return true; 392 return false; 393 } 394 395 public Coding addTag() { //3 396 Coding t = new Coding(); 397 if (this.tag == null) 398 this.tag = new ArrayList<Coding>(); 399 this.tag.add(t); 400 return t; 401 } 402 403 public Meta addTag(Coding t) { //3 404 if (t == null) 405 return this; 406 if (this.tag == null) 407 this.tag = new ArrayList<Coding>(); 408 this.tag.add(t); 409 return this; 410 } 411 412 /** 413 * @return The first repetition of repeating field {@link #tag}, creating it if it does not already exist {3} 414 */ 415 public Coding getTagFirstRep() { 416 if (getTag().isEmpty()) { 417 addTag(); 418 } 419 return getTag().get(0); 420 } 421 422 protected void listChildren(List<Property> children) { 423 super.listChildren(children); 424 children.add(new Property("versionId", "id", "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.", 0, 1, versionId)); 425 children.add(new Property("lastUpdated", "instant", "When the resource last changed - e.g. when the version changed.", 0, 1, lastUpdated)); 426 children.add(new Property("source", "uri", "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.", 0, 1, source)); 427 children.add(new Property("profile", "canonical(StructureDefinition)", "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).", 0, java.lang.Integer.MAX_VALUE, profile)); 428 children.add(new Property("security", "Coding", "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", 0, java.lang.Integer.MAX_VALUE, security)); 429 children.add(new Property("tag", "Coding", "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", 0, java.lang.Integer.MAX_VALUE, tag)); 430 } 431 432 @Override 433 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 434 switch (_hash) { 435 case -1407102957: /*versionId*/ return new Property("versionId", "id", "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.", 0, 1, versionId); 436 case 1649733957: /*lastUpdated*/ return new Property("lastUpdated", "instant", "When the resource last changed - e.g. when the version changed.", 0, 1, lastUpdated); 437 case -896505829: /*source*/ return new Property("source", "uri", "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.", 0, 1, source); 438 case -309425751: /*profile*/ return new Property("profile", "canonical(StructureDefinition)", "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).", 0, java.lang.Integer.MAX_VALUE, profile); 439 case 949122880: /*security*/ return new Property("security", "Coding", "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", 0, java.lang.Integer.MAX_VALUE, security); 440 case 114586: /*tag*/ return new Property("tag", "Coding", "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", 0, java.lang.Integer.MAX_VALUE, tag); 441 default: return super.getNamedProperty(_hash, _name, _checkValid); 442 } 443 444 } 445 446 @Override 447 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 448 switch (hash) { 449 case -1407102957: /*versionId*/ return this.versionId == null ? new Base[0] : new Base[] {this.versionId}; // IdType 450 case 1649733957: /*lastUpdated*/ return this.lastUpdated == null ? new Base[0] : new Base[] {this.lastUpdated}; // InstantType 451 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // UriType 452 case -309425751: /*profile*/ return this.profile == null ? new Base[0] : this.profile.toArray(new Base[this.profile.size()]); // CanonicalType 453 case 949122880: /*security*/ return this.security == null ? new Base[0] : this.security.toArray(new Base[this.security.size()]); // Coding 454 case 114586: /*tag*/ return this.tag == null ? new Base[0] : this.tag.toArray(new Base[this.tag.size()]); // Coding 455 default: return super.getProperty(hash, name, checkValid); 456 } 457 458 } 459 460 @Override 461 public Base setProperty(int hash, String name, Base value) throws FHIRException { 462 switch (hash) { 463 case -1407102957: // versionId 464 this.versionId = TypeConvertor.castToId(value); // IdType 465 return value; 466 case 1649733957: // lastUpdated 467 this.lastUpdated = TypeConvertor.castToInstant(value); // InstantType 468 return value; 469 case -896505829: // source 470 this.source = TypeConvertor.castToUri(value); // UriType 471 return value; 472 case -309425751: // profile 473 this.getProfile().add(TypeConvertor.castToCanonical(value)); // CanonicalType 474 return value; 475 case 949122880: // security 476 this.getSecurity().add(TypeConvertor.castToCoding(value)); // Coding 477 return value; 478 case 114586: // tag 479 this.getTag().add(TypeConvertor.castToCoding(value)); // Coding 480 return value; 481 default: return super.setProperty(hash, name, value); 482 } 483 484 } 485 486 @Override 487 public Base setProperty(String name, Base value) throws FHIRException { 488 if (name.equals("versionId")) { 489 this.versionId = TypeConvertor.castToId(value); // IdType 490 } else if (name.equals("lastUpdated")) { 491 this.lastUpdated = TypeConvertor.castToInstant(value); // InstantType 492 } else if (name.equals("source")) { 493 this.source = TypeConvertor.castToUri(value); // UriType 494 } else if (name.equals("profile")) { 495 this.getProfile().add(TypeConvertor.castToCanonical(value)); 496 } else if (name.equals("security")) { 497 this.getSecurity().add(TypeConvertor.castToCoding(value)); 498 } else if (name.equals("tag")) { 499 this.getTag().add(TypeConvertor.castToCoding(value)); 500 } else 501 return super.setProperty(name, value); 502 return value; 503 } 504 505 @Override 506 public void removeChild(String name, Base value) throws FHIRException { 507 if (name.equals("versionId")) { 508 this.versionId = null; 509 } else if (name.equals("lastUpdated")) { 510 this.lastUpdated = null; 511 } else if (name.equals("source")) { 512 this.source = null; 513 } else if (name.equals("profile")) { 514 this.getProfile().remove(value); 515 } else if (name.equals("security")) { 516 this.getSecurity().remove(value); 517 } else if (name.equals("tag")) { 518 this.getTag().remove(value); 519 } else 520 super.removeChild(name, value); 521 522 } 523 524 @Override 525 public Base makeProperty(int hash, String name) throws FHIRException { 526 switch (hash) { 527 case -1407102957: return getVersionIdElement(); 528 case 1649733957: return getLastUpdatedElement(); 529 case -896505829: return getSourceElement(); 530 case -309425751: return addProfileElement(); 531 case 949122880: return addSecurity(); 532 case 114586: return addTag(); 533 default: return super.makeProperty(hash, name); 534 } 535 536 } 537 538 @Override 539 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 540 switch (hash) { 541 case -1407102957: /*versionId*/ return new String[] {"id"}; 542 case 1649733957: /*lastUpdated*/ return new String[] {"instant"}; 543 case -896505829: /*source*/ return new String[] {"uri"}; 544 case -309425751: /*profile*/ return new String[] {"canonical"}; 545 case 949122880: /*security*/ return new String[] {"Coding"}; 546 case 114586: /*tag*/ return new String[] {"Coding"}; 547 default: return super.getTypesForProperty(hash, name); 548 } 549 550 } 551 552 @Override 553 public Base addChild(String name) throws FHIRException { 554 if (name.equals("versionId")) { 555 throw new FHIRException("Cannot call addChild on a singleton property Meta.versionId"); 556 } 557 else if (name.equals("lastUpdated")) { 558 throw new FHIRException("Cannot call addChild on a singleton property Meta.lastUpdated"); 559 } 560 else if (name.equals("source")) { 561 throw new FHIRException("Cannot call addChild on a singleton property Meta.source"); 562 } 563 else if (name.equals("profile")) { 564 throw new FHIRException("Cannot call addChild on a singleton property Meta.profile"); 565 } 566 else if (name.equals("security")) { 567 return addSecurity(); 568 } 569 else if (name.equals("tag")) { 570 return addTag(); 571 } 572 else 573 return super.addChild(name); 574 } 575 576 public String fhirType() { 577 return "Meta"; 578 579 } 580 581 public Meta copy() { 582 Meta dst = new Meta(); 583 copyValues(dst); 584 return dst; 585 } 586 587 public void copyValues(Meta dst) { 588 super.copyValues(dst); 589 dst.versionId = versionId == null ? null : versionId.copy(); 590 dst.lastUpdated = lastUpdated == null ? null : lastUpdated.copy(); 591 dst.source = source == null ? null : source.copy(); 592 if (profile != null) { 593 dst.profile = new ArrayList<CanonicalType>(); 594 for (CanonicalType i : profile) 595 dst.profile.add(i.copy()); 596 }; 597 if (security != null) { 598 dst.security = new ArrayList<Coding>(); 599 for (Coding i : security) 600 dst.security.add(i.copy()); 601 }; 602 if (tag != null) { 603 dst.tag = new ArrayList<Coding>(); 604 for (Coding i : tag) 605 dst.tag.add(i.copy()); 606 }; 607 } 608 609 protected Meta typedCopy() { 610 return copy(); 611 } 612 613 @Override 614 public boolean equalsDeep(Base other_) { 615 if (!super.equalsDeep(other_)) 616 return false; 617 if (!(other_ instanceof Meta)) 618 return false; 619 Meta o = (Meta) other_; 620 return compareDeep(versionId, o.versionId, true) && compareDeep(lastUpdated, o.lastUpdated, true) 621 && compareDeep(source, o.source, true) && compareDeep(profile, o.profile, true) && compareDeep(security, o.security, true) 622 && compareDeep(tag, o.tag, true); 623 } 624 625 @Override 626 public boolean equalsShallow(Base other_) { 627 if (!super.equalsShallow(other_)) 628 return false; 629 if (!(other_ instanceof Meta)) 630 return false; 631 Meta o = (Meta) other_; 632 return compareValues(versionId, o.versionId, true) && compareValues(lastUpdated, o.lastUpdated, true) 633 && compareValues(source, o.source, true) && compareValues(profile, o.profile, true); 634 } 635 636 public boolean isEmpty() { 637 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(versionId, lastUpdated, source 638 , profile, security, tag); 639 } 640 641// Manual code (from Configuration.txt): 642/** 643 * Convenience method which adds a tag 644 * 645 * @param theSystem The code system 646 * @param theCode The code 647 * @param theDisplay The display name 648 * @return Returns a reference to <code>this</code> for easy chaining 649 */ 650 public Meta addTag(String theSystem, String theCode, String theDisplay) { 651 addTag().setSystem(theSystem).setCode(theCode).setDisplay(theDisplay); 652 return this; 653 } 654 655 /** 656 * Returns the first tag (if any) that has the given system and code, or returns 657 * <code>null</code> if none 658 */ 659 public Coding getTag(String theSystem, String theCode) { 660 for (Coding next : getTag()) { 661 if (ca.uhn.fhir.util.ObjectUtil.equals(next.getSystem(), theSystem) && ca.uhn.fhir.util.ObjectUtil.equals(next.getCode(), theCode)) { 662 return next; 663 } 664 } 665 return null; 666 } 667 668 /** 669 * Returns the first security label (if any) that has the given system and code, or returns 670 * <code>null</code> if none 671 */ 672 public Coding getSecurity(String theSystem, String theCode) { 673 for (Coding next : getSecurity()) { 674 if (ca.uhn.fhir.util.ObjectUtil.equals(next.getSystem(), theSystem) && ca.uhn.fhir.util.ObjectUtil.equals(next.getCode(), theCode)) { 675 return next; 676 } 677 } 678 return null; 679 } 680// end addition 681 682} 683