/** @generated */
 private void createLinks(Diagram diagram) {
   for (boolean continueLinkCreation = true; continueLinkCreation; ) {
     continueLinkCreation = false;
     Collection additionalDescriptors = new LinkedList();
     for (Iterator it = myLinkDescriptors.iterator(); it.hasNext(); ) {
       UMLLinkDescriptor nextLinkDescriptor = (UMLLinkDescriptor) it.next();
       if (!myDomain2NotationMap.containsKey(nextLinkDescriptor.getSource())
           || !myDomain2NotationMap.containsKey(nextLinkDescriptor.getDestination())) {
         continue;
       }
       final String linkType = UMLVisualIDRegistry.getType(nextLinkDescriptor.getVisualID());
       Edge edge =
           ViewService.getInstance()
               .createEdge(
                   nextLinkDescriptor.getSemanticAdapter(),
                   diagram,
                   linkType,
                   ViewUtil.APPEND,
                   true,
                   UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
       if (edge != null) {
         edge.setSource((View) myDomain2NotationMap.get(nextLinkDescriptor.getSource()));
         edge.setTarget((View) myDomain2NotationMap.get(nextLinkDescriptor.getDestination()));
         it.remove();
         if (nextLinkDescriptor.getModelElement() != null) {
           myDomain2NotationMap.put(nextLinkDescriptor.getModelElement(), edge);
         }
         continueLinkCreation = true;
         switch (nextLinkDescriptor.getVisualID()) {
           case ExtensionEditPart.VISUAL_ID:
             additionalDescriptors.addAll(UMLDiagramUpdater.getExtension_1013OutgoingLinks(edge));
             break;
           case AssociationEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getAssociation_4001OutgoingLinks(edge));
             break;
           case ProfileApplicationEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getProfileApplication_1045OutgoingLinks(edge));
             break;
           case AssociationBranchEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getAssociation_4019OutgoingLinks(edge));
             break;
           case GeneralizationEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getGeneralization_4002OutgoingLinks(edge));
             break;
           case DependencyEditPart.VISUAL_ID:
             additionalDescriptors.addAll(UMLDiagramUpdater.getDependency_4008OutgoingLinks(edge));
             break;
           case DependencyBranchEditPart.VISUAL_ID:
             additionalDescriptors.addAll(UMLDiagramUpdater.getDependency_4018OutgoingLinks(edge));
             break;
           case ElementImportEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getElementImport_1064OutgoingLinks(edge));
             break;
           case PackageImportEditPart.VISUAL_ID:
             additionalDescriptors.addAll(
                 UMLDiagramUpdater.getPackageImport_1065OutgoingLinks(edge));
             break;
         }
       }
     }
     myLinkDescriptors.addAll(additionalDescriptors);
   }
 }