Partager via


DslDefinitionModelDeleteClosure.ShouldVisitRolePlayer, méthode

Cette méthode est appelée pour demander le filtre si un acteur de rôle particulier associé à un ElementLink doit être visité pendant le parcours. Cela substitue la méthode ShouldVisitRolePlayer() générée, qui examine l'attribut PropagateDelete sur l'ElementLink afin de décider de visiter ou non les acteurs de rôle associés. Dans ce cas, le RelationshipPort, la forme dessinée comme un petit carré dans lequel une relation est connectée à une classe, n'a pas été supprimé avec la relation. La raison est que le lien utilisé pour connecter RelationshipPort (une forme) à RoleConnector (également une forme) est un sous-type d'ElementLink appelé LinkConnectsToNode. Les instances de ce type de lien sont utilisées pour associer différentes NodeShapes avec les LinkShapes et ne propagent donc pas les suppressions, même si cela devrait le cas dans le cas de RelationshipPort. Le même problème se posait pour InheritancePort qui, comme RelationshipPort, étend TogglePort. Cette méthode est appelée pour chaque ElementLink visité au cours d'une suppression. Si le lien en question est une instance de LinkConnectsToNode et l'acteur de rôle est un TogglePort, il se peut que la forme de port ne soit plus être nécessaire. Après avoir contrôlé le nombre de liens laissés à l'acteur de rôle cible, cette méthode retourne VisitorFilterResult.YES s'il y a un seul lien vers le port, et VisitorFilterResult.DoNotCare dans le cas contraire. Cela fait en sorte que lorsque le dernier lien vers le nœud est supprimé, la forme de port est également supprimée.

Espace de noms :  Microsoft.VisualStudio.Modeling.DslDefinition
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0.dll)

Syntaxe

'Déclaration
Public Overrides Function ShouldVisitRolePlayer ( _
    walker As ElementWalker, _
    sourceElement As ModelElement, _
    elementLink As ElementLink, _
    targetDomainRole As DomainRoleInfo, _
    targetRolePlayer As ModelElement _
) As VisitorFilterResult
public override VisitorFilterResult ShouldVisitRolePlayer(
    ElementWalker walker,
    ModelElement sourceElement,
    ElementLink elementLink,
    DomainRoleInfo targetDomainRole,
    ModelElement targetRolePlayer
)

Paramètres

Valeur de retour

Type : Microsoft.VisualStudio.Modeling.VisitorFilterResult

Implémentations

IElementVisitorFilter.ShouldVisitRolePlayer(ElementWalker, ModelElement, ElementLink, DomainRoleInfo, ModelElement)

Sécurité .NET Framework

Voir aussi

Référence

DslDefinitionModelDeleteClosure Classe

Microsoft.VisualStudio.Modeling.DslDefinition, espace de noms