/// <summary>
 /// Creates a ACC based on the given <paramref name="specification"/>.
 /// <param name="specification">A specification for a ACC.</param>
 /// <returns>The newly created ACC.</returns>
 /// </summary>
 public IAcc CreateAcc(AccSpec specification)
 {
     return(new UpccAcc(UmlPackage.CreateClass(AccSpecConverter.Convert(specification))));
 }
 /// <summary>
 /// Updates a ACC to match the given <paramref name="specification"/>.
 /// <param name="acc">A ACC.</param>
 /// <param name="specification">A new specification for the given ACC.</param>
 /// <returns>The updated ACC. Depending on the implementation, this might be the same updated instance or a new instance!</returns>
 /// </summary>
 public IAcc UpdateAcc(IAcc acc, AccSpec specification)
 {
     return(new UpccAcc(UmlPackage.UpdateClass(((UpccAcc)acc).UmlClass, AccSpecConverter.Convert(specification))));
 }