Beispiel #1
0
        public override LGSPNode Retype(LGSPNode node, NodeType newNodeType)
        {
            String name;

            if (ElemToName.TryGetValue(node, out name)) // give new node the name of the old node in case it was named
            {
                LGSPNode newNode = (LGSPNode)newNodeType.CreateNodeWithCopyCommons(node);
                ElemToName[newNode] = name;
                RetypingNode(node, newNode);
                ReplaceNode(node, newNode);
                ElemToName.Remove(node);
                NameToElem[name] = newNode;
                return(newNode);
            }
            else
            {
                return(base.Retype(node, newNodeType));
            }
        }
Beispiel #2
0
 /// <summary>
 /// Retypes a node by creating a new node of the given type.
 /// All incident edges as well as all attributes from common super classes are kept.
 /// </summary>
 /// <param name="node">The node to be retyped.</param>
 /// <param name="newNodeType">The new type for the node.</param>
 /// <returns>The new node object representing the retyped node.</returns>
 public virtual LGSPNode Retype(LGSPNode node, NodeType newNodeType)
 {
     LGSPNode newNode = (LGSPNode) newNodeType.CreateNodeWithCopyCommons(node);
     RetypingNode(node, newNode);
     ReplaceNode(node, newNode);
     return newNode;
 }
Beispiel #3
0
 public override LGSPNode Retype(LGSPNode node, NodeType newNodeType)
 {
     String name;
     if(ElemToName.TryGetValue(node, out name)) // give new node the name of the old node in case it was named
     {
         LGSPNode newNode = (LGSPNode)newNodeType.CreateNodeWithCopyCommons(node);
         ElemToName[newNode] = name;
         RetypingNode(node, newNode);
         ReplaceNode(node, newNode);
         ElemToName.Remove(node);
         NameToElem[name] = newNode;
         return newNode;
     }
     else
         return base.Retype(node, newNodeType);
 }