public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as TargetComponent; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (Target != null) { dest.Target = (Hl7.Fhir.Model.Identifier)Target.DeepCopy(); } if (Type != null) { dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy(); } if (Interaction != null) { dest.Interaction = (Hl7.Fhir.Model.CodeableConcept)Interaction.DeepCopy(); } if (Organism != null) { dest.Organism = (Hl7.Fhir.Model.CodeableConcept)Organism.DeepCopy(); } if (OrganismType != null) { dest.OrganismType = (Hl7.Fhir.Model.CodeableConcept)OrganismType.DeepCopy(); } if (Amount != null) { dest.Amount = (Hl7.Fhir.Model.DataType)Amount.DeepCopy(); } if (AmountType != null) { dest.AmountType = (Hl7.Fhir.Model.CodeableConcept)AmountType.DeepCopy(); } if (Source != null) { dest.Source = new List <Hl7.Fhir.Model.ResourceReference>(Source.DeepCopy()); } return(dest); }