Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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);
            }
        }