public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as CompartmentDefinition; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (UrlElement != null) { dest.UrlElement = (Hl7.Fhir.Model.FhirUri)UrlElement.DeepCopy(); } if (NameElement != null) { dest.NameElement = (Hl7.Fhir.Model.FhirString)NameElement.DeepCopy(); } if (TitleElement != null) { dest.TitleElement = (Hl7.Fhir.Model.FhirString)TitleElement.DeepCopy(); } if (StatusElement != null) { dest.StatusElement = (Code <Hl7.Fhir.Model.PublicationStatus>)StatusElement.DeepCopy(); } if (ExperimentalElement != null) { dest.ExperimentalElement = (Hl7.Fhir.Model.FhirBoolean)ExperimentalElement.DeepCopy(); } if (DateElement != null) { dest.DateElement = (Hl7.Fhir.Model.FhirDateTime)DateElement.DeepCopy(); } if (PublisherElement != null) { dest.PublisherElement = (Hl7.Fhir.Model.FhirString)PublisherElement.DeepCopy(); } if (Contact != null) { dest.Contact = new List <Hl7.Fhir.Model.ContactDetail>(Contact.DeepCopy()); } if (Description != null) { dest.Description = (Hl7.Fhir.Model.Markdown)Description.DeepCopy(); } if (Purpose != null) { dest.Purpose = (Hl7.Fhir.Model.Markdown)Purpose.DeepCopy(); } if (UseContext != null) { dest.UseContext = new List <Hl7.Fhir.Model.UsageContext>(UseContext.DeepCopy()); } if (Jurisdiction != null) { dest.Jurisdiction = new List <Hl7.Fhir.Model.CodeableConcept>(Jurisdiction.DeepCopy()); } if (CodeElement != null) { dest.CodeElement = (Code <Hl7.Fhir.Model.CompartmentType>)CodeElement.DeepCopy(); } if (SearchElement != null) { dest.SearchElement = (Hl7.Fhir.Model.FhirBoolean)SearchElement.DeepCopy(); } if (Resource != null) { dest.Resource = new List <Hl7.Fhir.Model.CompartmentDefinition.ResourceComponent>(Resource.DeepCopy()); } return(dest); }