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 048/** 049 * VirtualServiceDetail Type: Virtual Service Contact Details. 050 */ 051@DatatypeDef(name="VirtualServiceDetail") 052public class VirtualServiceDetail extends DataType implements ICompositeType { 053 054 /** 055 * The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp). 056 */ 057 @Child(name = "channelType", type = {Coding.class}, order=0, min=0, max=1, modifier=false, summary=true) 058 @Description(shortDefinition="Channel Type", formalDefinition="The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp)." ) 059 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/virtual-service-type") 060 protected Coding channelType; 061 062 /** 063 * What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type). 064 */ 065 @Child(name = "address", type = {UrlType.class, StringType.class, ContactPoint.class, ExtendedContactDetail.class}, order=1, min=0, max=1, modifier=false, summary=true) 066 @Description(shortDefinition="Contact address/number", formalDefinition="What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type)." ) 067 protected DataType address; 068 069 /** 070 * Address to see alternative connection details. 071 */ 072 @Child(name = "additionalInfo", type = {UrlType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 073 @Description(shortDefinition="Address to see alternative connection details", formalDefinition="Address to see alternative connection details." ) 074 protected List<UrlType> additionalInfo; 075 076 /** 077 * Maximum number of participants supported by the virtual service. 078 */ 079 @Child(name = "maxParticipants", type = {PositiveIntType.class}, order=3, min=0, max=1, modifier=false, summary=true) 080 @Description(shortDefinition="Maximum number of participants supported by the virtual service", formalDefinition="Maximum number of participants supported by the virtual service." ) 081 protected PositiveIntType maxParticipants; 082 083 /** 084 * Session Key required by the virtual service. 085 */ 086 @Child(name = "sessionKey", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 087 @Description(shortDefinition="Session Key required by the virtual service", formalDefinition="Session Key required by the virtual service." ) 088 protected StringType sessionKey; 089 090 private static final long serialVersionUID = -514931977L; 091 092 /** 093 * Constructor 094 */ 095 public VirtualServiceDetail() { 096 super(); 097 } 098 099 /** 100 * @return {@link #channelType} (The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).) 101 */ 102 public Coding getChannelType() { 103 if (this.channelType == null) 104 if (Configuration.errorOnAutoCreate()) 105 throw new Error("Attempt to auto-create VirtualServiceDetail.channelType"); 106 else if (Configuration.doAutoCreate()) 107 this.channelType = new Coding(); // cc 108 return this.channelType; 109 } 110 111 public boolean hasChannelType() { 112 return this.channelType != null && !this.channelType.isEmpty(); 113 } 114 115 /** 116 * @param value {@link #channelType} (The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).) 117 */ 118 public VirtualServiceDetail setChannelType(Coding value) { 119 this.channelType = value; 120 return this; 121 } 122 123 /** 124 * @return {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 125 */ 126 public DataType getAddress() { 127 return this.address; 128 } 129 130 /** 131 * @return {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 132 */ 133 public UrlType getAddressUrlType() throws FHIRException { 134 if (this.address == null) 135 this.address = new UrlType(); 136 if (!(this.address instanceof UrlType)) 137 throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.address.getClass().getName()+" was encountered"); 138 return (UrlType) this.address; 139 } 140 141 public boolean hasAddressUrlType() { 142 return this != null && this.address instanceof UrlType; 143 } 144 145 /** 146 * @return {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 147 */ 148 public StringType getAddressStringType() throws FHIRException { 149 if (this.address == null) 150 this.address = new StringType(); 151 if (!(this.address instanceof StringType)) 152 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.address.getClass().getName()+" was encountered"); 153 return (StringType) this.address; 154 } 155 156 public boolean hasAddressStringType() { 157 return this != null && this.address instanceof StringType; 158 } 159 160 /** 161 * @return {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 162 */ 163 public ContactPoint getAddressContactPoint() throws FHIRException { 164 if (this.address == null) 165 this.address = new ContactPoint(); 166 if (!(this.address instanceof ContactPoint)) 167 throw new FHIRException("Type mismatch: the type ContactPoint was expected, but "+this.address.getClass().getName()+" was encountered"); 168 return (ContactPoint) this.address; 169 } 170 171 public boolean hasAddressContactPoint() { 172 return this != null && this.address instanceof ContactPoint; 173 } 174 175 /** 176 * @return {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 177 */ 178 public ExtendedContactDetail getAddressExtendedContactDetail() throws FHIRException { 179 if (this.address == null) 180 this.address = new ExtendedContactDetail(); 181 if (!(this.address instanceof ExtendedContactDetail)) 182 throw new FHIRException("Type mismatch: the type ExtendedContactDetail was expected, but "+this.address.getClass().getName()+" was encountered"); 183 return (ExtendedContactDetail) this.address; 184 } 185 186 public boolean hasAddressExtendedContactDetail() { 187 return this != null && this.address instanceof ExtendedContactDetail; 188 } 189 190 public boolean hasAddress() { 191 return this.address != null && !this.address.isEmpty(); 192 } 193 194 /** 195 * @param value {@link #address} (What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).) 196 */ 197 public VirtualServiceDetail setAddress(DataType value) { 198 if (value != null && !(value instanceof UrlType || value instanceof StringType || value instanceof ContactPoint || value instanceof ExtendedContactDetail)) 199 throw new FHIRException("Not the right type for VirtualServiceDetail.address[x]: "+value.fhirType()); 200 this.address = value; 201 return this; 202 } 203 204 /** 205 * @return {@link #additionalInfo} (Address to see alternative connection details.) 206 */ 207 public List<UrlType> getAdditionalInfo() { 208 if (this.additionalInfo == null) 209 this.additionalInfo = new ArrayList<UrlType>(); 210 return this.additionalInfo; 211 } 212 213 /** 214 * @return Returns a reference to <code>this</code> for easy method chaining 215 */ 216 public VirtualServiceDetail setAdditionalInfo(List<UrlType> theAdditionalInfo) { 217 this.additionalInfo = theAdditionalInfo; 218 return this; 219 } 220 221 public boolean hasAdditionalInfo() { 222 if (this.additionalInfo == null) 223 return false; 224 for (UrlType item : this.additionalInfo) 225 if (!item.isEmpty()) 226 return true; 227 return false; 228 } 229 230 /** 231 * @return {@link #additionalInfo} (Address to see alternative connection details.) 232 */ 233 public UrlType addAdditionalInfoElement() {//2 234 UrlType t = new UrlType(); 235 if (this.additionalInfo == null) 236 this.additionalInfo = new ArrayList<UrlType>(); 237 this.additionalInfo.add(t); 238 return t; 239 } 240 241 /** 242 * @param value {@link #additionalInfo} (Address to see alternative connection details.) 243 */ 244 public VirtualServiceDetail addAdditionalInfo(String value) { //1 245 UrlType t = new UrlType(); 246 t.setValue(value); 247 if (this.additionalInfo == null) 248 this.additionalInfo = new ArrayList<UrlType>(); 249 this.additionalInfo.add(t); 250 return this; 251 } 252 253 /** 254 * @param value {@link #additionalInfo} (Address to see alternative connection details.) 255 */ 256 public boolean hasAdditionalInfo(String value) { 257 if (this.additionalInfo == null) 258 return false; 259 for (UrlType v : this.additionalInfo) 260 if (v.getValue().equals(value)) // url 261 return true; 262 return false; 263 } 264 265 /** 266 * @return {@link #maxParticipants} (Maximum number of participants supported by the virtual service.). This is the underlying object with id, value and extensions. The accessor "getMaxParticipants" gives direct access to the value 267 */ 268 public PositiveIntType getMaxParticipantsElement() { 269 if (this.maxParticipants == null) 270 if (Configuration.errorOnAutoCreate()) 271 throw new Error("Attempt to auto-create VirtualServiceDetail.maxParticipants"); 272 else if (Configuration.doAutoCreate()) 273 this.maxParticipants = new PositiveIntType(); // bb 274 return this.maxParticipants; 275 } 276 277 public boolean hasMaxParticipantsElement() { 278 return this.maxParticipants != null && !this.maxParticipants.isEmpty(); 279 } 280 281 public boolean hasMaxParticipants() { 282 return this.maxParticipants != null && !this.maxParticipants.isEmpty(); 283 } 284 285 /** 286 * @param value {@link #maxParticipants} (Maximum number of participants supported by the virtual service.). This is the underlying object with id, value and extensions. The accessor "getMaxParticipants" gives direct access to the value 287 */ 288 public VirtualServiceDetail setMaxParticipantsElement(PositiveIntType value) { 289 this.maxParticipants = value; 290 return this; 291 } 292 293 /** 294 * @return Maximum number of participants supported by the virtual service. 295 */ 296 public int getMaxParticipants() { 297 return this.maxParticipants == null || this.maxParticipants.isEmpty() ? 0 : this.maxParticipants.getValue(); 298 } 299 300 /** 301 * @param value Maximum number of participants supported by the virtual service. 302 */ 303 public VirtualServiceDetail setMaxParticipants(int value) { 304 if (this.maxParticipants == null) 305 this.maxParticipants = new PositiveIntType(); 306 this.maxParticipants.setValue(value); 307 return this; 308 } 309 310 /** 311 * @return {@link #sessionKey} (Session Key required by the virtual service.). This is the underlying object with id, value and extensions. The accessor "getSessionKey" gives direct access to the value 312 */ 313 public StringType getSessionKeyElement() { 314 if (this.sessionKey == null) 315 if (Configuration.errorOnAutoCreate()) 316 throw new Error("Attempt to auto-create VirtualServiceDetail.sessionKey"); 317 else if (Configuration.doAutoCreate()) 318 this.sessionKey = new StringType(); // bb 319 return this.sessionKey; 320 } 321 322 public boolean hasSessionKeyElement() { 323 return this.sessionKey != null && !this.sessionKey.isEmpty(); 324 } 325 326 public boolean hasSessionKey() { 327 return this.sessionKey != null && !this.sessionKey.isEmpty(); 328 } 329 330 /** 331 * @param value {@link #sessionKey} (Session Key required by the virtual service.). This is the underlying object with id, value and extensions. The accessor "getSessionKey" gives direct access to the value 332 */ 333 public VirtualServiceDetail setSessionKeyElement(StringType value) { 334 this.sessionKey = value; 335 return this; 336 } 337 338 /** 339 * @return Session Key required by the virtual service. 340 */ 341 public String getSessionKey() { 342 return this.sessionKey == null ? null : this.sessionKey.getValue(); 343 } 344 345 /** 346 * @param value Session Key required by the virtual service. 347 */ 348 public VirtualServiceDetail setSessionKey(String value) { 349 if (Utilities.noString(value)) 350 this.sessionKey = null; 351 else { 352 if (this.sessionKey == null) 353 this.sessionKey = new StringType(); 354 this.sessionKey.setValue(value); 355 } 356 return this; 357 } 358 359 protected void listChildren(List<Property> children) { 360 super.listChildren(children); 361 children.add(new Property("channelType", "Coding", "The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).", 0, 1, channelType)); 362 children.add(new Property("address[x]", "url|string|ContactPoint|ExtendedContactDetail", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address)); 363 children.add(new Property("additionalInfo", "url", "Address to see alternative connection details.", 0, java.lang.Integer.MAX_VALUE, additionalInfo)); 364 children.add(new Property("maxParticipants", "positiveInt", "Maximum number of participants supported by the virtual service.", 0, 1, maxParticipants)); 365 children.add(new Property("sessionKey", "string", "Session Key required by the virtual service.", 0, 1, sessionKey)); 366 } 367 368 @Override 369 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 370 switch (_hash) { 371 case 274155229: /*channelType*/ return new Property("channelType", "Coding", "The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).", 0, 1, channelType); 372 case 1341051916: /*address[x]*/ return new Property("address[x]", "url|string|ContactPoint|ExtendedContactDetail", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 373 case -1147692044: /*address*/ return new Property("address[x]", "url|string|ContactPoint|ExtendedContactDetail", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 374 case 1341045979: /*addressUrl*/ return new Property("address[x]", "url", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 375 case -740155099: /*addressString*/ return new Property("address[x]", "string", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 376 case 269121380: /*addressContactPoint*/ return new Property("address[x]", "ContactPoint", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 377 case -834417596: /*addressExtendedContactDetail*/ return new Property("address[x]", "ExtendedContactDetail", "What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).", 0, 1, address); 378 case -974297739: /*additionalInfo*/ return new Property("additionalInfo", "url", "Address to see alternative connection details.", 0, java.lang.Integer.MAX_VALUE, additionalInfo); 379 case 950795044: /*maxParticipants*/ return new Property("maxParticipants", "positiveInt", "Maximum number of participants supported by the virtual service.", 0, 1, maxParticipants); 380 case 1661834217: /*sessionKey*/ return new Property("sessionKey", "string", "Session Key required by the virtual service.", 0, 1, sessionKey); 381 default: return super.getNamedProperty(_hash, _name, _checkValid); 382 } 383 384 } 385 386 @Override 387 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 388 switch (hash) { 389 case 274155229: /*channelType*/ return this.channelType == null ? new Base[0] : new Base[] {this.channelType}; // Coding 390 case -1147692044: /*address*/ return this.address == null ? new Base[0] : new Base[] {this.address}; // DataType 391 case -974297739: /*additionalInfo*/ return this.additionalInfo == null ? new Base[0] : this.additionalInfo.toArray(new Base[this.additionalInfo.size()]); // UrlType 392 case 950795044: /*maxParticipants*/ return this.maxParticipants == null ? new Base[0] : new Base[] {this.maxParticipants}; // PositiveIntType 393 case 1661834217: /*sessionKey*/ return this.sessionKey == null ? new Base[0] : new Base[] {this.sessionKey}; // StringType 394 default: return super.getProperty(hash, name, checkValid); 395 } 396 397 } 398 399 @Override 400 public Base setProperty(int hash, String name, Base value) throws FHIRException { 401 switch (hash) { 402 case 274155229: // channelType 403 this.channelType = TypeConvertor.castToCoding(value); // Coding 404 return value; 405 case -1147692044: // address 406 this.address = TypeConvertor.castToType(value); // DataType 407 return value; 408 case -974297739: // additionalInfo 409 this.getAdditionalInfo().add(TypeConvertor.castToUrl(value)); // UrlType 410 return value; 411 case 950795044: // maxParticipants 412 this.maxParticipants = TypeConvertor.castToPositiveInt(value); // PositiveIntType 413 return value; 414 case 1661834217: // sessionKey 415 this.sessionKey = TypeConvertor.castToString(value); // StringType 416 return value; 417 default: return super.setProperty(hash, name, value); 418 } 419 420 } 421 422 @Override 423 public Base setProperty(String name, Base value) throws FHIRException { 424 if (name.equals("channelType")) { 425 this.channelType = TypeConvertor.castToCoding(value); // Coding 426 } else if (name.equals("address[x]")) { 427 this.address = TypeConvertor.castToType(value); // DataType 428 } else if (name.equals("additionalInfo")) { 429 this.getAdditionalInfo().add(TypeConvertor.castToUrl(value)); 430 } else if (name.equals("maxParticipants")) { 431 this.maxParticipants = TypeConvertor.castToPositiveInt(value); // PositiveIntType 432 } else if (name.equals("sessionKey")) { 433 this.sessionKey = TypeConvertor.castToString(value); // StringType 434 } else 435 return super.setProperty(name, value); 436 return value; 437 } 438 439 @Override 440 public void removeChild(String name, Base value) throws FHIRException { 441 if (name.equals("channelType")) { 442 this.channelType = null; 443 } else if (name.equals("address[x]")) { 444 this.address = null; 445 } else if (name.equals("additionalInfo")) { 446 this.getAdditionalInfo().remove(value); 447 } else if (name.equals("maxParticipants")) { 448 this.maxParticipants = null; 449 } else if (name.equals("sessionKey")) { 450 this.sessionKey = null; 451 } else 452 super.removeChild(name, value); 453 454 } 455 456 @Override 457 public Base makeProperty(int hash, String name) throws FHIRException { 458 switch (hash) { 459 case 274155229: return getChannelType(); 460 case 1341051916: return getAddress(); 461 case -1147692044: return getAddress(); 462 case -974297739: return addAdditionalInfoElement(); 463 case 950795044: return getMaxParticipantsElement(); 464 case 1661834217: return getSessionKeyElement(); 465 default: return super.makeProperty(hash, name); 466 } 467 468 } 469 470 @Override 471 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 472 switch (hash) { 473 case 274155229: /*channelType*/ return new String[] {"Coding"}; 474 case -1147692044: /*address*/ return new String[] {"url", "string", "ContactPoint", "ExtendedContactDetail"}; 475 case -974297739: /*additionalInfo*/ return new String[] {"url"}; 476 case 950795044: /*maxParticipants*/ return new String[] {"positiveInt"}; 477 case 1661834217: /*sessionKey*/ return new String[] {"string"}; 478 default: return super.getTypesForProperty(hash, name); 479 } 480 481 } 482 483 @Override 484 public Base addChild(String name) throws FHIRException { 485 if (name.equals("channelType")) { 486 this.channelType = new Coding(); 487 return this.channelType; 488 } 489 else if (name.equals("addressUrl")) { 490 this.address = new UrlType(); 491 return this.address; 492 } 493 else if (name.equals("addressString")) { 494 this.address = new StringType(); 495 return this.address; 496 } 497 else if (name.equals("addressContactPoint")) { 498 this.address = new ContactPoint(); 499 return this.address; 500 } 501 else if (name.equals("addressExtendedContactDetail")) { 502 this.address = new ExtendedContactDetail(); 503 return this.address; 504 } 505 else if (name.equals("additionalInfo")) { 506 throw new FHIRException("Cannot call addChild on a singleton property VirtualServiceDetail.additionalInfo"); 507 } 508 else if (name.equals("maxParticipants")) { 509 throw new FHIRException("Cannot call addChild on a singleton property VirtualServiceDetail.maxParticipants"); 510 } 511 else if (name.equals("sessionKey")) { 512 throw new FHIRException("Cannot call addChild on a singleton property VirtualServiceDetail.sessionKey"); 513 } 514 else 515 return super.addChild(name); 516 } 517 518 public String fhirType() { 519 return "VirtualServiceDetail"; 520 521 } 522 523 public VirtualServiceDetail copy() { 524 VirtualServiceDetail dst = new VirtualServiceDetail(); 525 copyValues(dst); 526 return dst; 527 } 528 529 public void copyValues(VirtualServiceDetail dst) { 530 super.copyValues(dst); 531 dst.channelType = channelType == null ? null : channelType.copy(); 532 dst.address = address == null ? null : address.copy(); 533 if (additionalInfo != null) { 534 dst.additionalInfo = new ArrayList<UrlType>(); 535 for (UrlType i : additionalInfo) 536 dst.additionalInfo.add(i.copy()); 537 }; 538 dst.maxParticipants = maxParticipants == null ? null : maxParticipants.copy(); 539 dst.sessionKey = sessionKey == null ? null : sessionKey.copy(); 540 } 541 542 protected VirtualServiceDetail typedCopy() { 543 return copy(); 544 } 545 546 @Override 547 public boolean equalsDeep(Base other_) { 548 if (!super.equalsDeep(other_)) 549 return false; 550 if (!(other_ instanceof VirtualServiceDetail)) 551 return false; 552 VirtualServiceDetail o = (VirtualServiceDetail) other_; 553 return compareDeep(channelType, o.channelType, true) && compareDeep(address, o.address, true) && compareDeep(additionalInfo, o.additionalInfo, true) 554 && compareDeep(maxParticipants, o.maxParticipants, true) && compareDeep(sessionKey, o.sessionKey, true) 555 ; 556 } 557 558 @Override 559 public boolean equalsShallow(Base other_) { 560 if (!super.equalsShallow(other_)) 561 return false; 562 if (!(other_ instanceof VirtualServiceDetail)) 563 return false; 564 VirtualServiceDetail o = (VirtualServiceDetail) other_; 565 return compareValues(additionalInfo, o.additionalInfo, true) && compareValues(maxParticipants, o.maxParticipants, true) 566 && compareValues(sessionKey, o.sessionKey, true); 567 } 568 569 public boolean isEmpty() { 570 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(channelType, address, additionalInfo 571 , maxParticipants, sessionKey); 572 } 573 574 575} 576