public void AddRelated(ClassDescriptor parent, ClassDescriptor child, ClassDiagramRelationshipTypes relationshipType, int level, string name = null) { if (! AlreadyRegistered(child)) _unvisitedRelatedClasses.Enqueue(child); var relationship = new ClassDiagramRelationship(name, parent, child, relationshipType); if (!_relationships.Contains(relationship)) _relationships.Add(relationship); }
private void WriteClassRelationship(ClassDiagramRelationship relationship) { string suffix = ""; string arrow = ""; switch (relationship.RelationshipType) { case ClassDiagramRelationshipTypes.Base: arrow = "-up-|>"; suffix = " : Extends"; break; case ClassDiagramRelationshipTypes.HasA: arrow = "*--"; suffix = " : Has A \\n{0}".FormatWith(relationship.Name); break; case ClassDiagramRelationshipTypes.HasMany: arrow = "*--"; suffix = " : Has Many \\n{0}".FormatWith(relationship.Name); break; default: throw new NPlantException("Unrecognized relationship type: {0}".FormatWith(relationship)); } _buffer.AppendLine("\"{0}\" {1} \"{2}\"{3}".FormatWith(relationship.Party1.Name, arrow, relationship.Party2.Name, suffix)); }