001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 033import java.util.Date; 034import java.util.List; 035 036import org.hl7.fhir.exceptions.FHIRException; 037import org.hl7.fhir.instance.model.api.ICompositeType; 038import org.hl7.fhir.utilities.Utilities; 039 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.DatatypeDef; 042import ca.uhn.fhir.model.api.annotation.Description; 043 044/** 045 * For referring to data content defined in other formats. 046 */ 047@DatatypeDef(name = "Attachment") 048public class Attachment extends Type implements ICompositeType { 049 050 /** 051 * Identifies the type of the data in the attachment and allows a method to be 052 * chosen to interpret or render the data. Includes mime type parameters such as 053 * charset where appropriate. 054 */ 055 @Child(name = "contentType", type = { CodeType.class }, order = 0, min = 0, max = 1, modifier = false, summary = true) 056 @Description(shortDefinition = "Mime type of the content, with charset etc.", formalDefinition = "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.") 057 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/mimetypes") 058 protected CodeType contentType; 059 060 /** 061 * The human language of the content. The value can be any valid value according 062 * to BCP 47. 063 */ 064 @Child(name = "language", type = { CodeType.class }, order = 1, min = 0, max = 1, modifier = false, summary = true) 065 @Description(shortDefinition = "Human language of the content (BCP-47)", formalDefinition = "The human language of the content. The value can be any valid value according to BCP 47.") 066 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/languages") 067 protected CodeType language; 068 069 /** 070 * The actual data of the attachment - a sequence of bytes, base64 encoded. 071 */ 072 @Child(name = "data", type = { 073 Base64BinaryType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 074 @Description(shortDefinition = "Data inline, base64ed", formalDefinition = "The actual data of the attachment - a sequence of bytes, base64 encoded.") 075 protected Base64BinaryType data; 076 077 /** 078 * A location where the data can be accessed. 079 */ 080 @Child(name = "url", type = { UrlType.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 081 @Description(shortDefinition = "Uri where the data can be found", formalDefinition = "A location where the data can be accessed.") 082 protected UrlType url; 083 084 /** 085 * The number of bytes of data that make up this attachment (before base64 086 * encoding, if that is done). 087 */ 088 @Child(name = "size", type = { UnsignedIntType.class }, order = 4, min = 0, max = 1, modifier = false, summary = true) 089 @Description(shortDefinition = "Number of bytes of content (if url provided)", formalDefinition = "The number of bytes of data that make up this attachment (before base64 encoding, if that is done).") 090 protected UnsignedIntType size; 091 092 /** 093 * The calculated hash of the data using SHA-1. Represented using base64. 094 */ 095 @Child(name = "hash", type = { 096 Base64BinaryType.class }, order = 5, min = 0, max = 1, modifier = false, summary = true) 097 @Description(shortDefinition = "Hash of the data (sha-1, base64ed)", formalDefinition = "The calculated hash of the data using SHA-1. Represented using base64.") 098 protected Base64BinaryType hash; 099 100 /** 101 * A label or set of text to display in place of the data. 102 */ 103 @Child(name = "title", type = { StringType.class }, order = 6, min = 0, max = 1, modifier = false, summary = true) 104 @Description(shortDefinition = "Label to display in place of the data", formalDefinition = "A label or set of text to display in place of the data.") 105 protected StringType title; 106 107 /** 108 * The date that the attachment was first created. 109 */ 110 @Child(name = "creation", type = { 111 DateTimeType.class }, order = 7, min = 0, max = 1, modifier = false, summary = true) 112 @Description(shortDefinition = "Date attachment was first created", formalDefinition = "The date that the attachment was first created.") 113 protected DateTimeType creation; 114 115 private static final long serialVersionUID = -564352571L; 116 117 /** 118 * Constructor 119 */ 120 public Attachment() { 121 super(); 122 } 123 124 /** 125 * @return {@link #contentType} (Identifies the type of the data in the 126 * attachment and allows a method to be chosen to interpret or render 127 * the data. Includes mime type parameters such as charset where 128 * appropriate.). This is the underlying object with id, value and 129 * extensions. The accessor "getContentType" gives direct access to the 130 * value 131 */ 132 public CodeType getContentTypeElement() { 133 if (this.contentType == null) 134 if (Configuration.errorOnAutoCreate()) 135 throw new Error("Attempt to auto-create Attachment.contentType"); 136 else if (Configuration.doAutoCreate()) 137 this.contentType = new CodeType(); // bb 138 return this.contentType; 139 } 140 141 public boolean hasContentTypeElement() { 142 return this.contentType != null && !this.contentType.isEmpty(); 143 } 144 145 public boolean hasContentType() { 146 return this.contentType != null && !this.contentType.isEmpty(); 147 } 148 149 /** 150 * @param value {@link #contentType} (Identifies the type of the data in the 151 * attachment and allows a method to be chosen to interpret or 152 * render the data. Includes mime type parameters such as charset 153 * where appropriate.). This is the underlying object with id, 154 * value and extensions. The accessor "getContentType" gives direct 155 * access to the value 156 */ 157 public Attachment setContentTypeElement(CodeType value) { 158 this.contentType = value; 159 return this; 160 } 161 162 /** 163 * @return Identifies the type of the data in the attachment and allows a method 164 * to be chosen to interpret or render the data. Includes mime type 165 * parameters such as charset where appropriate. 166 */ 167 public String getContentType() { 168 return this.contentType == null ? null : this.contentType.getValue(); 169 } 170 171 /** 172 * @param value Identifies the type of the data in the attachment and allows a 173 * method to be chosen to interpret or render the data. Includes 174 * mime type parameters such as charset where appropriate. 175 */ 176 public Attachment setContentType(String value) { 177 if (Utilities.noString(value)) 178 this.contentType = null; 179 else { 180 if (this.contentType == null) 181 this.contentType = new CodeType(); 182 this.contentType.setValue(value); 183 } 184 return this; 185 } 186 187 /** 188 * @return {@link #language} (The human language of the content. The value can 189 * be any valid value according to BCP 47.). This is the underlying 190 * object with id, value and extensions. The accessor "getLanguage" 191 * gives direct access to the value 192 */ 193 public CodeType getLanguageElement() { 194 if (this.language == null) 195 if (Configuration.errorOnAutoCreate()) 196 throw new Error("Attempt to auto-create Attachment.language"); 197 else if (Configuration.doAutoCreate()) 198 this.language = new CodeType(); // bb 199 return this.language; 200 } 201 202 public boolean hasLanguageElement() { 203 return this.language != null && !this.language.isEmpty(); 204 } 205 206 public boolean hasLanguage() { 207 return this.language != null && !this.language.isEmpty(); 208 } 209 210 /** 211 * @param value {@link #language} (The human language of the content. The value 212 * can be any valid value according to BCP 47.). This is the 213 * underlying object with id, value and extensions. The accessor 214 * "getLanguage" gives direct access to the value 215 */ 216 public Attachment setLanguageElement(CodeType value) { 217 this.language = value; 218 return this; 219 } 220 221 /** 222 * @return The human language of the content. The value can be any valid value 223 * according to BCP 47. 224 */ 225 public String getLanguage() { 226 return this.language == null ? null : this.language.getValue(); 227 } 228 229 /** 230 * @param value The human language of the content. The value can be any valid 231 * value according to BCP 47. 232 */ 233 public Attachment setLanguage(String value) { 234 if (Utilities.noString(value)) 235 this.language = null; 236 else { 237 if (this.language == null) 238 this.language = new CodeType(); 239 this.language.setValue(value); 240 } 241 return this; 242 } 243 244 /** 245 * @return {@link #data} (The actual data of the attachment - a sequence of 246 * bytes, base64 encoded.). This is the underlying object with id, value 247 * and extensions. The accessor "getData" gives direct access to the 248 * value 249 */ 250 public Base64BinaryType getDataElement() { 251 if (this.data == null) 252 if (Configuration.errorOnAutoCreate()) 253 throw new Error("Attempt to auto-create Attachment.data"); 254 else if (Configuration.doAutoCreate()) 255 this.data = new Base64BinaryType(); // bb 256 return this.data; 257 } 258 259 public boolean hasDataElement() { 260 return this.data != null && !this.data.isEmpty(); 261 } 262 263 public boolean hasData() { 264 return this.data != null && !this.data.isEmpty(); 265 } 266 267 /** 268 * @param value {@link #data} (The actual data of the attachment - a sequence of 269 * bytes, base64 encoded.). This is the underlying object with id, 270 * value and extensions. The accessor "getData" gives direct access 271 * to the value 272 */ 273 public Attachment setDataElement(Base64BinaryType value) { 274 this.data = value; 275 return this; 276 } 277 278 /** 279 * @return The actual data of the attachment - a sequence of bytes, base64 280 * encoded. 281 */ 282 public byte[] getData() { 283 return this.data == null ? null : this.data.getValue(); 284 } 285 286 /** 287 * @param value The actual data of the attachment - a sequence of bytes, base64 288 * encoded. 289 */ 290 public Attachment setData(byte[] value) { 291 if (value == null) 292 this.data = null; 293 else { 294 if (this.data == null) 295 this.data = new Base64BinaryType(); 296 this.data.setValue(value); 297 } 298 return this; 299 } 300 301 /** 302 * @return {@link #url} (A location where the data can be accessed.). This is 303 * the underlying object with id, value and extensions. The accessor 304 * "getUrl" gives direct access to the value 305 */ 306 public UrlType getUrlElement() { 307 if (this.url == null) 308 if (Configuration.errorOnAutoCreate()) 309 throw new Error("Attempt to auto-create Attachment.url"); 310 else if (Configuration.doAutoCreate()) 311 this.url = new UrlType(); // bb 312 return this.url; 313 } 314 315 public boolean hasUrlElement() { 316 return this.url != null && !this.url.isEmpty(); 317 } 318 319 public boolean hasUrl() { 320 return this.url != null && !this.url.isEmpty(); 321 } 322 323 /** 324 * @param value {@link #url} (A location where the data can be accessed.). This 325 * is the underlying object with id, value and extensions. The 326 * accessor "getUrl" gives direct access to the value 327 */ 328 public Attachment setUrlElement(UrlType value) { 329 this.url = value; 330 return this; 331 } 332 333 /** 334 * @return A location where the data can be accessed. 335 */ 336 public String getUrl() { 337 return this.url == null ? null : this.url.getValue(); 338 } 339 340 /** 341 * @param value A location where the data can be accessed. 342 */ 343 public Attachment setUrl(String value) { 344 if (Utilities.noString(value)) 345 this.url = null; 346 else { 347 if (this.url == null) 348 this.url = new UrlType(); 349 this.url.setValue(value); 350 } 351 return this; 352 } 353 354 /** 355 * @return {@link #size} (The number of bytes of data that make up this 356 * attachment (before base64 encoding, if that is done).). This is the 357 * underlying object with id, value and extensions. The accessor 358 * "getSize" gives direct access to the value 359 */ 360 public UnsignedIntType getSizeElement() { 361 if (this.size == null) 362 if (Configuration.errorOnAutoCreate()) 363 throw new Error("Attempt to auto-create Attachment.size"); 364 else if (Configuration.doAutoCreate()) 365 this.size = new UnsignedIntType(); // bb 366 return this.size; 367 } 368 369 public boolean hasSizeElement() { 370 return this.size != null && !this.size.isEmpty(); 371 } 372 373 public boolean hasSize() { 374 return this.size != null && !this.size.isEmpty(); 375 } 376 377 /** 378 * @param value {@link #size} (The number of bytes of data that make up this 379 * attachment (before base64 encoding, if that is done).). This is 380 * the underlying object with id, value and extensions. The 381 * accessor "getSize" gives direct access to the value 382 */ 383 public Attachment setSizeElement(UnsignedIntType value) { 384 this.size = value; 385 return this; 386 } 387 388 /** 389 * @return The number of bytes of data that make up this attachment (before 390 * base64 encoding, if that is done). 391 */ 392 public int getSize() { 393 return this.size == null || this.size.isEmpty() ? 0 : this.size.getValue(); 394 } 395 396 /** 397 * @param value The number of bytes of data that make up this attachment (before 398 * base64 encoding, if that is done). 399 */ 400 public Attachment setSize(int value) { 401 if (this.size == null) 402 this.size = new UnsignedIntType(); 403 this.size.setValue(value); 404 return this; 405 } 406 407 /** 408 * @return {@link #hash} (The calculated hash of the data using SHA-1. 409 * Represented using base64.). This is the underlying object with id, 410 * value and extensions. The accessor "getHash" gives direct access to 411 * the value 412 */ 413 public Base64BinaryType getHashElement() { 414 if (this.hash == null) 415 if (Configuration.errorOnAutoCreate()) 416 throw new Error("Attempt to auto-create Attachment.hash"); 417 else if (Configuration.doAutoCreate()) 418 this.hash = new Base64BinaryType(); // bb 419 return this.hash; 420 } 421 422 public boolean hasHashElement() { 423 return this.hash != null && !this.hash.isEmpty(); 424 } 425 426 public boolean hasHash() { 427 return this.hash != null && !this.hash.isEmpty(); 428 } 429 430 /** 431 * @param value {@link #hash} (The calculated hash of the data using SHA-1. 432 * Represented using base64.). This is the underlying object with 433 * id, value and extensions. The accessor "getHash" gives direct 434 * access to the value 435 */ 436 public Attachment setHashElement(Base64BinaryType value) { 437 this.hash = value; 438 return this; 439 } 440 441 /** 442 * @return The calculated hash of the data using SHA-1. Represented using 443 * base64. 444 */ 445 public byte[] getHash() { 446 return this.hash == null ? null : this.hash.getValue(); 447 } 448 449 /** 450 * @param value The calculated hash of the data using SHA-1. Represented using 451 * base64. 452 */ 453 public Attachment setHash(byte[] value) { 454 if (value == null) 455 this.hash = null; 456 else { 457 if (this.hash == null) 458 this.hash = new Base64BinaryType(); 459 this.hash.setValue(value); 460 } 461 return this; 462 } 463 464 /** 465 * @return {@link #title} (A label or set of text to display in place of the 466 * data.). This is the underlying object with id, value and extensions. 467 * The accessor "getTitle" gives direct access to the value 468 */ 469 public StringType getTitleElement() { 470 if (this.title == null) 471 if (Configuration.errorOnAutoCreate()) 472 throw new Error("Attempt to auto-create Attachment.title"); 473 else if (Configuration.doAutoCreate()) 474 this.title = new StringType(); // bb 475 return this.title; 476 } 477 478 public boolean hasTitleElement() { 479 return this.title != null && !this.title.isEmpty(); 480 } 481 482 public boolean hasTitle() { 483 return this.title != null && !this.title.isEmpty(); 484 } 485 486 /** 487 * @param value {@link #title} (A label or set of text to display in place of 488 * the data.). This is the underlying object with id, value and 489 * extensions. The accessor "getTitle" gives direct access to the 490 * value 491 */ 492 public Attachment setTitleElement(StringType value) { 493 this.title = value; 494 return this; 495 } 496 497 /** 498 * @return A label or set of text to display in place of the data. 499 */ 500 public String getTitle() { 501 return this.title == null ? null : this.title.getValue(); 502 } 503 504 /** 505 * @param value A label or set of text to display in place of the data. 506 */ 507 public Attachment setTitle(String value) { 508 if (Utilities.noString(value)) 509 this.title = null; 510 else { 511 if (this.title == null) 512 this.title = new StringType(); 513 this.title.setValue(value); 514 } 515 return this; 516 } 517 518 /** 519 * @return {@link #creation} (The date that the attachment was first created.). 520 * This is the underlying object with id, value and extensions. The 521 * accessor "getCreation" gives direct access to the value 522 */ 523 public DateTimeType getCreationElement() { 524 if (this.creation == null) 525 if (Configuration.errorOnAutoCreate()) 526 throw new Error("Attempt to auto-create Attachment.creation"); 527 else if (Configuration.doAutoCreate()) 528 this.creation = new DateTimeType(); // bb 529 return this.creation; 530 } 531 532 public boolean hasCreationElement() { 533 return this.creation != null && !this.creation.isEmpty(); 534 } 535 536 public boolean hasCreation() { 537 return this.creation != null && !this.creation.isEmpty(); 538 } 539 540 /** 541 * @param value {@link #creation} (The date that the attachment was first 542 * created.). This is the underlying object with id, value and 543 * extensions. The accessor "getCreation" gives direct access to 544 * the value 545 */ 546 public Attachment setCreationElement(DateTimeType value) { 547 this.creation = value; 548 return this; 549 } 550 551 /** 552 * @return The date that the attachment was first created. 553 */ 554 public Date getCreation() { 555 return this.creation == null ? null : this.creation.getValue(); 556 } 557 558 /** 559 * @param value The date that the attachment was first created. 560 */ 561 public Attachment setCreation(Date value) { 562 if (value == null) 563 this.creation = null; 564 else { 565 if (this.creation == null) 566 this.creation = new DateTimeType(); 567 this.creation.setValue(value); 568 } 569 return this; 570 } 571 572 protected void listChildren(List<Property> children) { 573 super.listChildren(children); 574 children.add(new Property("contentType", "code", 575 "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.", 576 0, 1, contentType)); 577 children.add(new Property("language", "code", 578 "The human language of the content. The value can be any valid value according to BCP 47.", 0, 1, language)); 579 children.add(new Property("data", "base64Binary", 580 "The actual data of the attachment - a sequence of bytes, base64 encoded.", 0, 1, data)); 581 children.add(new Property("url", "url", "A location where the data can be accessed.", 0, 1, url)); 582 children.add(new Property("size", "unsignedInt", 583 "The number of bytes of data that make up this attachment (before base64 encoding, if that is done).", 0, 1, 584 size)); 585 children.add(new Property("hash", "base64Binary", 586 "The calculated hash of the data using SHA-1. Represented using base64.", 0, 1, hash)); 587 children 588 .add(new Property("title", "string", "A label or set of text to display in place of the data.", 0, 1, title)); 589 children 590 .add(new Property("creation", "dateTime", "The date that the attachment was first created.", 0, 1, creation)); 591 } 592 593 @Override 594 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 595 switch (_hash) { 596 case -389131437: 597 /* contentType */ return new Property("contentType", "code", 598 "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.", 599 0, 1, contentType); 600 case -1613589672: 601 /* language */ return new Property("language", "code", 602 "The human language of the content. The value can be any valid value according to BCP 47.", 0, 1, language); 603 case 3076010: 604 /* data */ return new Property("data", "base64Binary", 605 "The actual data of the attachment - a sequence of bytes, base64 encoded.", 0, 1, data); 606 case 116079: 607 /* url */ return new Property("url", "url", "A location where the data can be accessed.", 0, 1, url); 608 case 3530753: 609 /* size */ return new Property("size", "unsignedInt", 610 "The number of bytes of data that make up this attachment (before base64 encoding, if that is done).", 0, 1, 611 size); 612 case 3195150: 613 /* hash */ return new Property("hash", "base64Binary", 614 "The calculated hash of the data using SHA-1. Represented using base64.", 0, 1, hash); 615 case 110371416: 616 /* title */ return new Property("title", "string", "A label or set of text to display in place of the data.", 0, 617 1, title); 618 case 1820421855: 619 /* creation */ return new Property("creation", "dateTime", "The date that the attachment was first created.", 0, 620 1, creation); 621 default: 622 return super.getNamedProperty(_hash, _name, _checkValid); 623 } 624 625 } 626 627 @Override 628 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 629 switch (hash) { 630 case -389131437: 631 /* contentType */ return this.contentType == null ? new Base[0] : new Base[] { this.contentType }; // CodeType 632 case -1613589672: 633 /* language */ return this.language == null ? new Base[0] : new Base[] { this.language }; // CodeType 634 case 3076010: 635 /* data */ return this.data == null ? new Base[0] : new Base[] { this.data }; // Base64BinaryType 636 case 116079: 637 /* url */ return this.url == null ? new Base[0] : new Base[] { this.url }; // UrlType 638 case 3530753: 639 /* size */ return this.size == null ? new Base[0] : new Base[] { this.size }; // UnsignedIntType 640 case 3195150: 641 /* hash */ return this.hash == null ? new Base[0] : new Base[] { this.hash }; // Base64BinaryType 642 case 110371416: 643 /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType 644 case 1820421855: 645 /* creation */ return this.creation == null ? new Base[0] : new Base[] { this.creation }; // DateTimeType 646 default: 647 return super.getProperty(hash, name, checkValid); 648 } 649 650 } 651 652 @Override 653 public Base setProperty(int hash, String name, Base value) throws FHIRException { 654 switch (hash) { 655 case -389131437: // contentType 656 this.contentType = castToCode(value); // CodeType 657 return value; 658 case -1613589672: // language 659 this.language = castToCode(value); // CodeType 660 return value; 661 case 3076010: // data 662 this.data = castToBase64Binary(value); // Base64BinaryType 663 return value; 664 case 116079: // url 665 this.url = castToUrl(value); // UrlType 666 return value; 667 case 3530753: // size 668 this.size = castToUnsignedInt(value); // UnsignedIntType 669 return value; 670 case 3195150: // hash 671 this.hash = castToBase64Binary(value); // Base64BinaryType 672 return value; 673 case 110371416: // title 674 this.title = castToString(value); // StringType 675 return value; 676 case 1820421855: // creation 677 this.creation = castToDateTime(value); // DateTimeType 678 return value; 679 default: 680 return super.setProperty(hash, name, value); 681 } 682 683 } 684 685 @Override 686 public Base setProperty(String name, Base value) throws FHIRException { 687 if (name.equals("contentType")) { 688 this.contentType = castToCode(value); // CodeType 689 } else if (name.equals("language")) { 690 this.language = castToCode(value); // CodeType 691 } else if (name.equals("data")) { 692 this.data = castToBase64Binary(value); // Base64BinaryType 693 } else if (name.equals("url")) { 694 this.url = castToUrl(value); // UrlType 695 } else if (name.equals("size")) { 696 this.size = castToUnsignedInt(value); // UnsignedIntType 697 } else if (name.equals("hash")) { 698 this.hash = castToBase64Binary(value); // Base64BinaryType 699 } else if (name.equals("title")) { 700 this.title = castToString(value); // StringType 701 } else if (name.equals("creation")) { 702 this.creation = castToDateTime(value); // DateTimeType 703 } else 704 return super.setProperty(name, value); 705 return value; 706 } 707 708 @Override 709 public void removeChild(String name, Base value) throws FHIRException { 710 if (name.equals("contentType")) { 711 this.contentType = null; 712 } else if (name.equals("language")) { 713 this.language = null; 714 } else if (name.equals("data")) { 715 this.data = null; 716 } else if (name.equals("url")) { 717 this.url = null; 718 } else if (name.equals("size")) { 719 this.size = null; 720 } else if (name.equals("hash")) { 721 this.hash = null; 722 } else if (name.equals("title")) { 723 this.title = null; 724 } else if (name.equals("creation")) { 725 this.creation = null; 726 } else 727 super.removeChild(name, value); 728 729 } 730 731 @Override 732 public Base makeProperty(int hash, String name) throws FHIRException { 733 switch (hash) { 734 case -389131437: 735 return getContentTypeElement(); 736 case -1613589672: 737 return getLanguageElement(); 738 case 3076010: 739 return getDataElement(); 740 case 116079: 741 return getUrlElement(); 742 case 3530753: 743 return getSizeElement(); 744 case 3195150: 745 return getHashElement(); 746 case 110371416: 747 return getTitleElement(); 748 case 1820421855: 749 return getCreationElement(); 750 default: 751 return super.makeProperty(hash, name); 752 } 753 754 } 755 756 @Override 757 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 758 switch (hash) { 759 case -389131437: 760 /* contentType */ return new String[] { "code" }; 761 case -1613589672: 762 /* language */ return new String[] { "code" }; 763 case 3076010: 764 /* data */ return new String[] { "base64Binary" }; 765 case 116079: 766 /* url */ return new String[] { "url" }; 767 case 3530753: 768 /* size */ return new String[] { "unsignedInt" }; 769 case 3195150: 770 /* hash */ return new String[] { "base64Binary" }; 771 case 110371416: 772 /* title */ return new String[] { "string" }; 773 case 1820421855: 774 /* creation */ return new String[] { "dateTime" }; 775 default: 776 return super.getTypesForProperty(hash, name); 777 } 778 779 } 780 781 @Override 782 public Base addChild(String name) throws FHIRException { 783 if (name.equals("contentType")) { 784 throw new FHIRException("Cannot call addChild on a singleton property Attachment.contentType"); 785 } else if (name.equals("language")) { 786 throw new FHIRException("Cannot call addChild on a singleton property Attachment.language"); 787 } else if (name.equals("data")) { 788 throw new FHIRException("Cannot call addChild on a singleton property Attachment.data"); 789 } else if (name.equals("url")) { 790 throw new FHIRException("Cannot call addChild on a singleton property Attachment.url"); 791 } else if (name.equals("size")) { 792 throw new FHIRException("Cannot call addChild on a singleton property Attachment.size"); 793 } else if (name.equals("hash")) { 794 throw new FHIRException("Cannot call addChild on a singleton property Attachment.hash"); 795 } else if (name.equals("title")) { 796 throw new FHIRException("Cannot call addChild on a singleton property Attachment.title"); 797 } else if (name.equals("creation")) { 798 throw new FHIRException("Cannot call addChild on a singleton property Attachment.creation"); 799 } else 800 return super.addChild(name); 801 } 802 803 public String fhirType() { 804 return "Attachment"; 805 806 } 807 808 public Attachment copy() { 809 Attachment dst = new Attachment(); 810 copyValues(dst); 811 return dst; 812 } 813 814 public void copyValues(Attachment dst) { 815 super.copyValues(dst); 816 dst.contentType = contentType == null ? null : contentType.copy(); 817 dst.language = language == null ? null : language.copy(); 818 dst.data = data == null ? null : data.copy(); 819 dst.url = url == null ? null : url.copy(); 820 dst.size = size == null ? null : size.copy(); 821 dst.hash = hash == null ? null : hash.copy(); 822 dst.title = title == null ? null : title.copy(); 823 dst.creation = creation == null ? null : creation.copy(); 824 } 825 826 protected Attachment typedCopy() { 827 return copy(); 828 } 829 830 @Override 831 public boolean equalsDeep(Base other_) { 832 if (!super.equalsDeep(other_)) 833 return false; 834 if (!(other_ instanceof Attachment)) 835 return false; 836 Attachment o = (Attachment) other_; 837 return compareDeep(contentType, o.contentType, true) && compareDeep(language, o.language, true) 838 && compareDeep(data, o.data, true) && compareDeep(url, o.url, true) && compareDeep(size, o.size, true) 839 && compareDeep(hash, o.hash, true) && compareDeep(title, o.title, true) 840 && compareDeep(creation, o.creation, true); 841 } 842 843 @Override 844 public boolean equalsShallow(Base other_) { 845 if (!super.equalsShallow(other_)) 846 return false; 847 if (!(other_ instanceof Attachment)) 848 return false; 849 Attachment o = (Attachment) other_; 850 return compareValues(contentType, o.contentType, true) && compareValues(language, o.language, true) 851 && compareValues(data, o.data, true) && compareValues(url, o.url, true) && compareValues(size, o.size, true) 852 && compareValues(hash, o.hash, true) && compareValues(title, o.title, true) 853 && compareValues(creation, o.creation, true); 854 } 855 856 public boolean isEmpty() { 857 return super.isEmpty() 858 && ca.uhn.fhir.util.ElementUtil.isEmpty(contentType, language, data, url, size, hash, title, creation); 859 } 860 861}