Exemple #1
0
        private TestModelBuilder AddRelationship(string sourceName, string targetName,
                                                 ModelRelationshipClassifier classifier, ModelRelationshipStereotype stereotype)
        {
            if (_testModel.Relationships
                .Any(i => i.Source.Name == sourceName && i.Classifier == classifier && i.Stereotype == stereotype && i.Target.Name == targetName))
            {
                throw new InvalidOperationException($"Relationship already exists {sourceName}--{classifier}({stereotype})-->{targetName}.");
            }

            var sourceEntity = _testModel.Entities.FirstOrDefault(i => i.Name == sourceName) as ModelEntity;

            if (sourceEntity == null)
            {
                throw new InvalidOperationException($"Entity with name {sourceName} not found.");
            }

            var targetEntity = _testModel.Entities.FirstOrDefault(i => i.Name == targetName) as ModelEntity;

            if (targetEntity == null)
            {
                throw new InvalidOperationException($"Entity with name {targetName} not found.");
            }

            var newRelationship = new ModelRelationship(sourceEntity, targetEntity, classifier, stereotype);

            _testModel.GetOrAddRelationship(newRelationship);

            return(this);
        }
Exemple #2
0
        private ModelRelationship AddRelationshipIfNotExists(RoslynSymbolRelation symbolRelation)
        {
            var sourceEntity = _model.GetEntityBySymbol(symbolRelation.SourceSymbol);
            var targetEntity = _model.GetEntityBySymbol(symbolRelation.TargetSymbol);
            var relationship = new ModelRelationship(sourceEntity, targetEntity, symbolRelation.Type);

            return(_model.GetOrAddRelationship(relationship));
        }
Exemple #3
0
        private void CreateChildren(TestClass parent, int childCount, int currentLevel, int maxLevel)
        {
            if (currentLevel == maxLevel)
            {
                return;
            }

            for (var i = 0; i < childCount; i++)
            {
                var newEntity = CreateAndAddClass($"{parent.Name}-{i}");

                var newRelationship = new ModelRelationship(newEntity, parent, ModelRelationshipClassifier.Generalization, ModelRelationshipStereotype.None);
                _testModel.GetOrAddRelationship(newRelationship);

                CreateChildren(newEntity, childCount, currentLevel + 1, maxLevel);
            }
        }
Exemple #4
0
        private static IDiagramConnector CreateConnector(
            [NotNull] IImmutableSet <IDiagramNode> nodes,
            [NotNull] string sourceNodeName,
            [NotNull] string targetNodeName)
        {
            var sourceNode       = nodes.Single(i => i.Name == sourceNodeName);
            var targetNode       = nodes.Single(i => i.Name == targetNodeName);
            var relationshipName = $"{sourceNodeName}->{targetNodeName}";

            var relationship = new ModelRelationship(
                ModelRelationshipId.Create(),
                sourceNode.Id,
                targetNode.Id,
                ModelRelationshipStereotype.Default,
                relationshipName);

            return(new DiagramConnector(relationship, ConnectorTypes.Dependency));
        }
Exemple #5
0
 public Model()
 {
     Fields = new Field[0];
     SourceModelRelationships  = new ModelRelationship[0];
     RelatedModelRelationships = new ModelRelationship[0];
 }
Exemple #6
0
 public override ModelRelationship GetOrAddRelationship(ModelRelationship modelRelationship)
 {
     _modelItemGroups.Last().Add(modelRelationship);
     return(base.GetOrAddRelationship(modelRelationship));
 }
Exemple #7
0
 public bool Matches(ModelRelationship relationship)
 {
     return(relationship.Type == Type &&
            SourceSymbol.OriginalDefinition.SymbolEquals(((IRoslynBasedModelEntity)relationship.Source).RoslynSymbol.OriginalDefinition) &&
            TargetSymbol.OriginalDefinition.SymbolEquals(((IRoslynBasedModelEntity)relationship.Target).RoslynSymbol.OriginalDefinition));
 }