/// <summary>
 /// Creates a ABIE based on the given <paramref name="specification"/>.
 /// <param name="specification">A specification for a ABIE.</param>
 /// <returns>The newly created ABIE.</returns>
 /// </summary>
 public IAbie CreateAbie(AbieSpec specification)
 {
     return(new UpccAbie(UmlPackage.CreateClass(AbieSpecConverter.Convert(specification))));
 }
 /// <summary>
 /// Updates a ABIE to match the given <paramref name="specification"/>.
 /// <param name="abie">A ABIE.</param>
 /// <param name="specification">A new specification for the given ABIE.</param>
 /// <returns>The updated ABIE. Depending on the implementation, this might be the same updated instance or a new instance!</returns>
 /// </summary>
 public IAbie UpdateAbie(IAbie abie, AbieSpec specification)
 {
     return(new UpccAbie(UmlPackage.UpdateClass(((UpccAbie)abie).UmlClass, AbieSpecConverter.Convert(specification))));
 }