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 = (relationship.Name.StartsWithAVowel() ? " : Has An \\n{0}" : " : 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)); }
public override bool Equals(object obj) { ClassDiagramRelationship relationship = obj as ClassDiagramRelationship; if (relationship == null) { return(false); } return(object.Equals(relationship.Party1, this.Party1) && object.Equals(relationship.Party2, this.Party2) && string.Equals(relationship.Name, this.Name)); }
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); } }