private void DeleteLink(ILink link) { int pos = LinksInCollection.BinarySearch(link, CurrLinkComparer); if (pos >= 0) { LinksInCollection.RemoveAt(pos); if (SourceArtifactUris.Contains(link.SourceArtifact.Uri)) { m_sourceArtifactUris.Remove(link.SourceArtifact.Uri); } if (TargetArtifactUris.Contains(link.TargetArtifact.Uri)) { m_targetArtifactUris.Remove(link.TargetArtifact.Uri); } } }
private void AddLink(ILink link) { if (!IsLinkInCollection(link)) { LinksInCollection.Add(link); LinksInCollection.Sort(CurrLinkComparer); if (!SourceArtifactUris.Contains(link.SourceArtifact.Uri)) { m_sourceArtifactUris.Add(link.SourceArtifact.Uri); m_sourceArtifactUris.Sort(); } if (!TargetArtifactUris.Contains(link.TargetArtifact.Uri)) { m_targetArtifactUris.Add(link.TargetArtifact.Uri); m_targetArtifactUris.Sort(); } } }
private bool LinkIntroducesCyclicReference(ILink link) { return(TargetArtifactUris.Contains(link.SourceArtifact.Uri) && SourceArtifactUris.Contains(link.TargetArtifact.Uri)); }