BreadthFirstRolePlayerFirstElementWalker Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
-Klasse, um die Breite der ersten traversierungen des Modells zu aktivieren, beginnend bei einem bestimmten Element oder einer Gruppe von Elementen. Dieser Walker stellt außerdem sicher, dass Roleplayers von Beziehungen zuerst besucht werden, bevor die Beziehung besucht wird.
public ref class BreadthFirstRolePlayerFirstElementWalker : Microsoft::VisualStudio::Modeling::ElementWalker
public class BreadthFirstRolePlayerFirstElementWalker : Microsoft.VisualStudio.Modeling.ElementWalker
type BreadthFirstRolePlayerFirstElementWalker = class
inherit ElementWalker
Public Class BreadthFirstRolePlayerFirstElementWalker
Inherits ElementWalker
- Vererbung
- Abgeleitet
Konstruktoren
| BreadthFirstRolePlayerFirstElementWalker(IElementVisitor, IElementVisitorFilter) |
Konstruktor, der einen Element Besucher annimmt. Dabei handelt es sich standardmäßig um einen tiefen ersten Durchlauf, eine Vorabbestellung des Diagramms ohne Element Verknüpfungen. |
| BreadthFirstRolePlayerFirstElementWalker(IElementVisitor, IElementVisitorFilter, Boolean, Boolean) |
Konstruktor, der einen Element Besucher annimmt. |
Eigenschaften
| BypassDemandLoading |
Ermöglicht es dem Walker, das Laden von Anforderungen beim durchlaufen zu umgehen. (Geerbt von ElementWalker) |
| Filter |
Ielementvisitor Filter für die Verwendung während der Durchquerung anfordern oder festlegen (Geerbt von ElementWalker) |
| IncludeLinks |
Gibt "true" zurück, wenn der Spaziergänger Element Verknüpfungen in Aufrufen der "Visitor"-Funktion einschließt. (Geerbt von ElementWalker) |
| InternalElementList |
Die interne Liste der Elemente, die besucht werden, wird aufgerufen. (Geerbt von ElementWalker) |
| Store |
Die interne Liste der Elemente, die besucht werden, wird aufgerufen. (Geerbt von ElementWalker) |
| Visitor |
"Ielementvisitor" für die Verwendung während der Traversierung erhalten oder festlegen (Geerbt von ElementWalker) |
Methoden
| DoTraverse(ModelElement) |
Durchlaufen Sie das Modell beginnend am angegebenen Anfangs Element. |
| MarkForRemovalFromInternalElementList(ModelElement) |
Markieren Sie ein Element, das aus der internalelementlist entfernt werden soll. Wir markieren zuerst und entfernen Sie später am Ende, damit die Indizes gültig bleiben. Wenn Sie Elemente als besucht markieren, speichern wir einen Index in der Hash Tabelle, der die Reihenfolge angibt, in der das Element besucht wurde. Wenn die Elemente in der internalelementlist in dieser Reihenfolge abgelegt wurden, kann das Element problemlos mithilfe des Indexes gefunden werden. Wenn keine lineare Suche verwendet wird, um das Element zu finden. (Geerbt von ElementWalker) |
| MarkVisited(ModelElement) |
Markieren Sie ein Element als bereits besucht. (Geerbt von ElementWalker) |
| RemoveMarkedElements() |
Entfernt die Elemente, die zum Entfernen markiert sind. Nennen Sie dies am Ende der Traversierung, damit die Indizes in "alleserybesuchte" gültig bleiben. (Geerbt von ElementWalker) |
| Reset() |
Setzen Sie den Besucher zurück, damit er erneut durchlaufen werden kann. Dies ist erforderlich, um die interne Liste der zuvor besuchten Elemente zu löschen. (Geerbt von ElementWalker) |
| ShouldVisitLinkAgain(ElementLink, ModelElement) |
Wenn wir bei der Betrachtung der zugehörigen Elemente des angegebenen currentelement-Elements einen Link finden, der zum Besuch in die Warteschlange eingereiht wurde, werden Sie von dieser Funktion informiert, ob Sie erneut besucht werden muss. Dies ist der, wenn der Link aufgerufen wurde, bevor currentelement (einer seiner Roleplayers) besucht wurde. Bei Abschluss Spaziergängern garantieren wir, dass der Link erst nach dem Besuch von Roleplayers besucht wird (technisch gesehen garantieren wir, dass internalelementlist den Link nach den Roleplayers enthält). Stellen Sie sich dieses Szenario vor: Wir haben Element a, das ein das RolePlayer für zwei Beziehungen von ahassb und chasas ist. Während der Closure-Durchquerung wird ein zuerst von B bis ahasbs adressiert. Es ist jedoch keine Prop-DELETE-Eigenschaft vorhanden, daher wird es nicht besucht, aber die ahassb wird besucht. Später in der Traversierung wird eine von C über chasas adressiert. Dieses Mal wird eine besucht, da Sie über "prop-Delete" verfügt. Nun erhalten Sie einen Fall, in dem ahassb besucht wurde, bevor einer seiner Roleplayers (a) besucht wurde. Um dieses Problem zu beheben: Wenn die Wanderer feststellen, dass ein Link besucht wurde (oder Sie in die Warteschlange eingereiht wurde), sollte überprüft werden, ob Sie erneut besucht werden soll (überprüfen Sie, ob Sie bereits vor currentelement besucht wurde). Wenn dies der Fall ist, sollte der Link aus der internalelementlist mithilfe der Methoden markforremovalfrominternalelementlist und removemarkedelements entfernt und der Warteschlange hinzugefügt werden, um erneut zu besuchen. (Geerbt von ElementWalker) |
| Traverse(ICollection<ModelElement>) |
Durchlaufen des Modells, beginnend bei den angegebenen Start Elementen. (Geerbt von ElementWalker) |
| Traverse(ModelElement) |
Durchlaufen Sie das Modell beginnend am angegebenen Anfangs Element. (Geerbt von ElementWalker) |
| Visited(ModelElement) |
bestimmt, ob das angegebene Element besucht wurde oder nicht. (Geerbt von ElementWalker) |