public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as NutritionProduct; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (StatusElement != null) { dest.StatusElement = (Code <Hl7.Fhir.Model.NutritionProduct.NutritionProductStatus>)StatusElement.DeepCopy(); } if (Category != null) { dest.Category = new List <Hl7.Fhir.Model.CodeableConcept>(Category.DeepCopy()); } if (Code != null) { dest.Code = (Hl7.Fhir.Model.CodeableConcept)Code.DeepCopy(); } if (Manufacturer != null) { dest.Manufacturer = new List <Hl7.Fhir.Model.ResourceReference>(Manufacturer.DeepCopy()); } if (Nutrient != null) { dest.Nutrient = new List <Hl7.Fhir.Model.NutritionProduct.NutrientComponent>(Nutrient.DeepCopy()); } if (Ingredient != null) { dest.Ingredient = new List <Hl7.Fhir.Model.NutritionProduct.IngredientComponent>(Ingredient.DeepCopy()); } if (KnownAllergen != null) { dest.KnownAllergen = new List <Hl7.Fhir.Model.CodeableReference>(KnownAllergen.DeepCopy()); } if (ProductCharacteristic != null) { dest.ProductCharacteristic = new List <Hl7.Fhir.Model.NutritionProduct.ProductCharacteristicComponent>(ProductCharacteristic.DeepCopy()); } if (Instance != null) { dest.Instance = (Hl7.Fhir.Model.NutritionProduct.InstanceComponent)Instance.DeepCopy(); } if (Note != null) { dest.Note = new List <Hl7.Fhir.Model.Annotation>(Note.DeepCopy()); } return(dest); }