ElementClosureWalker Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Walker qui génère des fermetures sur les éléments de modèle
public ref class ElementClosureWalker sealed : Microsoft::VisualStudio::Modeling::BreadthFirstRolePlayerFirstElementWalker
public sealed class ElementClosureWalker : Microsoft.VisualStudio.Modeling.BreadthFirstRolePlayerFirstElementWalker
type ElementClosureWalker = class
inherit BreadthFirstRolePlayerFirstElementWalker
Public NotInheritable Class ElementClosureWalker
Inherits BreadthFirstRolePlayerFirstElementWalker
- Héritage
Constructeurs
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>, Boolean, IEnumerable<DomainRoleInfo>, Boolean) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>, Boolean, IEnumerable<DomainRoleInfo>, IEnumerable<DomainRoleInfo>, IList<ModelElement>) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>, Boolean, IEnumerable<DomainRoleInfo>, IList<DomainRoleInfo>, Boolean) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>, IEnumerable<DomainRoleInfo>) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
| ElementClosureWalker(Partition, ClosureType, ICollection<ModelElement>, IEnumerable<DomainRoleInfo>, IList<DomainRoleInfo>) |
Constructeur qui crée un ElementVisitor et une base d'appels. Cela correspond au parcours de la profondeur en premier, avec visites de type précommande dans le graphique qui contient des liens d'élément. |
Propriétés
| BypassDemandLoading |
Permet à l'explorateur d'ignorer la demande de chargement tout en parcourant (Hérité de ElementWalker) |
| ClosureList |
Liste résultante des éléments qui constituent la fermeture |
| Context |
Offre un objet de contexte pour une utilisation générale par les visiteurs de fermeture. |
| Filter |
Obtient ou définit l'IElementVisitorFilter à utiliser pendant le parcours (Hérité de ElementWalker) |
| IncludeLinks |
Retourne la valeur true si l'explorateur incorpore des liens d'élément dans les appels de la fonction de visiteur (Hérité de ElementWalker) |
| InternalElementList |
Obtient la liste interne d'éléments qui seront suivis (Hérité de ElementWalker) |
| Store |
Obtient la liste interne d'éléments qui seront suivis (Hérité de ElementWalker) |
| Visitor |
Obtient ou définit l'IElementVisitor à utiliser pendant le parcours (Hérité de ElementWalker) |
Méthodes
| DoTraverse(ModelElement) |
Parcourt le modèle en partant de l'élément de début spécifié. (Hérité de BreadthFirstRolePlayerFirstElementWalker) |
| MarkForRemovalFromInternalElementList(ModelElement) |
Marque un élément pour la suppression à partir de l'InternalElementList. Nous commençons par marquer, puis nous supprimons à la fin de sorte que les index restent valides. Lorsque les éléments sont marqués comme étant visités, nous enregistrons un index dans la table de hachage pour indiquer l'ordre de visite des éléments. Si les éléments ont été placés dans l'InternalElementList dans cet ordre, nous pouvons rechercher l'élément facilement à l'aide de l'index. Si ce n'est pas le cas, une recherche linéaire sera utilisée pour rechercher l'élément. (Hérité de ElementWalker) |
| MarkVisited(ModelElement) |
Marque un élément comme ayant déjà été visité (Hérité de ElementWalker) |
| RemoveMarkedElements() |
Supprime les éléments qui sont marqués pour être supprimés. Appelez cette méthode à la fin du parcours afin que les index dans alreadyVisited restent valides. (Hérité de ElementWalker) |
| Reset() |
Réinitialise le visiteur pour lui permettre de reprendre son parcours. Ceci est nécessaire pour effacer le contenu de la liste interne des éléments précédemment visités. (Hérité de ElementWalker) |
| ShouldVisitLinkAgain(ElementLink, ModelElement) |
Lorsque vous examinez les éléments associés du currentElement donné, si nous trouvons un lien qui a été mis en file d’attente pour la visite, cette fonction vous indiquera s’il doit être revisité. C’est le cas si le lien a été visité avant la visite du currentElement (l’un de ses acteurs). Pour les dispositifs de fermeture, nous garantissons que le lien sera visité uniquement après la visite des acteurs (techniquement, nous garantissons que le InternalElementList contiendra le lien après le acteurs). Prenons le scénario suivant : nous avons un élément A qui est un rolePlayer pour 2 relations AHasBs et les. Pendant le parcours de fermeture, un est d’abord approché de B à AHasBs. Toutefois, il ne possède pas prop-Delete, il n’est donc pas visité, mais AHasBs est visité. Plus loin dans le parcours, un est proche de C via le « Repérageas ». Cette fois, un est visité, car il a prop-Delete. Nous obtenons maintenant un cas où AHasBs a été visité avant la visite d’un de ses acteurs (A). Pour résoudre ce problème, si les lanceurs détectent qu’un lien a été visité (au lieu d’être placé en file d’attente), il doit vérifier s’il doit être visité à nouveau (vérifiez s’il a déjà été visité avant currentElement). Si c’est le cas, il doit supprimer le lien du InternalElementList à l’aide des méthodes MarkForRemovalFromInternalElementList et RemoveMarkedElements, puis l’ajouter à la file d’attente pour qu’il soit de nouveau visité. (Hérité de ElementWalker) |
| Traverse(ICollection<ModelElement>) |
Parcourt le modèle en partant des éléments de début spécifiés. (Hérité de ElementWalker) |
| Traverse(ModelElement) |
Parcourt le modèle en partant de l'élément de début spécifié. (Hérité de ElementWalker) |
| Visited(ModelElement) |
détermine si l'élément spécifié a été visité ou non (Hérité de ElementWalker) |