public string getNodeName(UML.Extended.UMLItem element)
{
string name = string.Empty;
if (element != null)
{
name = this.getStereotypeString(element);
name += element.name;
}
if (element is UML.Classes.Kernel.Parameter)
{
UML.Classes.Kernel.Parameter parameter = (UML.Classes.Kernel.Parameter)element;
if (parameter.direction != UML.Classes.Kernel.ParameterDirectionKind._return)
{
name = parameter.name + " (" + this.getNodeName(parameter.operation) + ")";
}
}
else if (element is UML.Classes.Kernel.Feature)
{
UML.Classes.Kernel.Feature feature = (UML.Classes.Kernel.Feature)element;
UML.Classes.Kernel.Element owner = feature.owner;
if (owner != null)
{
name = owner.name;
}
else
{
name = "[owner missing]";
}
name += "." + this.getStereotypeString(element)+ feature.name;
}
else if (element is UML.Profiles.TaggedValue)
{
UML.Profiles.TaggedValue taggedValue = (UML.Profiles.TaggedValue)element;
if (taggedValue.owner.name.Length > 0)
{
name = taggedValue.owner.name + "." + taggedValue.name;
}
}
return name;
}