public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as DetailsComponent; if (dest != null) { base.CopyTo(dest); if (Type != null) { dest.Type = (Hl7.Fhir.Model.Coding)Type.DeepCopy(); } if (Request != null) { dest.Request = (Hl7.Fhir.Model.ResourceReference)Request.DeepCopy(); } if (Responce != null) { dest.Responce = (Hl7.Fhir.Model.ResourceReference)Responce.DeepCopy(); } if (Submitter != null) { dest.Submitter = (Hl7.Fhir.Model.ResourceReference)Submitter.DeepCopy(); } if (Payee != null) { dest.Payee = (Hl7.Fhir.Model.ResourceReference)Payee.DeepCopy(); } if (DateElement != null) { dest.DateElement = (Hl7.Fhir.Model.Date)DateElement.DeepCopy(); } if (Amount != null) { dest.Amount = (Hl7.Fhir.Model.Money)Amount.DeepCopy(); } return(dest); } else { throw new ArgumentException("Can only copy to an object of the same type", "other"); } }