/// <summary>
 /// Updates a CDT to match the given <paramref name="specification"/>.
 /// <param name="cdt">A CDT.</param>
 /// <param name="specification">A new specification for the given CDT.</param>
 /// <returns>The updated CDT. Depending on the implementation, this might be the same updated instance or a new instance!</returns>
 /// </summary>
 public ICdt UpdateCdt(ICdt cdt, CdtSpec specification)
 {
     return(new UpccCdt(UmlPackage.UpdateClass(((UpccCdt)cdt).UmlClass, CdtSpecConverter.Convert(specification))));
 }
 /// <summary>
 /// Creates a CDT based on the given <paramref name="specification"/>.
 /// <param name="specification">A specification for a CDT.</param>
 /// <returns>The newly created CDT.</returns>
 /// </summary>
 public ICdt CreateCdt(CdtSpec specification)
 {
     return(new UpccCdt(UmlPackage.CreateClass(CdtSpecConverter.Convert(specification))));
 }