BreadthFirstRolePlayerFirstElementWalker Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Classe para habilitar a amplitude das primeiras passagens do modelo, começando por um determinado elemento ou grupo de elementos. Essa Walker também garante que roleplayers de relações sejam visitadas primeiro antes que a relação seja visitada.
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
- Herança
- Derivado
Construtores
| BreadthFirstRolePlayerFirstElementWalker(IElementVisitor, IElementVisitorFilter) |
Construtor que usa um ElementVisitor. Esse padrão é a profundidade da primeira passagem, visitation de ordem do grafo sem nenhum link de elemento. |
| BreadthFirstRolePlayerFirstElementWalker(IElementVisitor, IElementVisitorFilter, Boolean, Boolean) |
Construtor que usa um ElementVisitor. |
Propriedades
| BypassDemandLoading |
Permite que o Walker ignore o carregamento de demanda durante a passagem (Herdado de ElementWalker) |
| Filter |
Obter ou definir o IElementVisitorFilter para uso durante a passagem (Herdado de ElementWalker) |
| IncludeLinks |
Retornará true se o Walker incluir links de elementos em chamadas para a função de visitante (Herdado de ElementWalker) |
| InternalElementList |
Obter a lista interna de elementos que serão visitados (Herdado de ElementWalker) |
| Store |
Obter a lista interna de elementos que serão visitados (Herdado de ElementWalker) |
| Visitor |
Obter ou definir o IElementVisitor para uso durante a passagem (Herdado de ElementWalker) |
Métodos
| DoTraverse(ModelElement) |
Percorrer o modelo começando no elemento inicial especificado. |
| MarkForRemovalFromInternalElementList(ModelElement) |
Marque um elemento para remoção do InternalElementList. Marcamos primeiro e removemos posteriormente no final para que os índices permaneçam válidos. Ao marcar elementos como visitados, armazenamos um índice na tabela de hash, que nos informa a ordem em que o elemento foi visitado. Se os elementos foram colocados em InternalElementList nessa ordem, podemos encontrar o elemento facilmente usando o índice. Se não for, uma pesquisa linear será usada para localizar o elemento. (Herdado de ElementWalker) |
| MarkVisited(ModelElement) |
Marcar um elemento como já visitado (Herdado de ElementWalker) |
| RemoveMarkedElements() |
Remove os elementos marcados para remoção. Chame isso no final da passagem para que os índices em alreadyVisited permaneçam válidos. (Herdado de ElementWalker) |
| Reset() |
Redefina o visitante para que ele possa começar a percorrer novamente. Isso é necessário para limpar a lista interna de elementos visitados anteriormente. (Herdado de ElementWalker) |
| ShouldVisitLinkAgain(ElementLink, ModelElement) |
Ao examinar os elementos relacionados do currentElement fornecido, se encontrarmos um link que foi enfileirado para ser visitado, essa função informará se ele precisa ser visitado novamente. Isso ocorrerá se o link tiver sido visitado antes que o currentElement (um de seus roleplayers) tenha sido visitado. Para os apresentadores de fechamento, garantimos que o link será visitado somente depois que os roleplayers forem visitados (tecnicamente, garantimos que o InternalElementList conterá o link após o roleplayers). Considere este cenário: temos um elemento que é um roleplayer para 2 relações AHasBs e CHasAs. Durante o percurso de fechamento, A é uma primeira abordagem de B a AHasBs. No entanto, ele não tem prop-Delete, portanto ele não é visitado, mas o AHasBs é visitado. Posteriormente, na passagem, um é abordado de C por meio de CHasAs. Desta vez, um é visitado porque tem prop-Delete. Agora, obtemos um caso em que o AHasBs foi visitado antes que um de seus roleplayers (A) fosse visitado. Para corrigir isso, se os orientadores descobrirem que um link foi visitado (ou, em vez disso, enfileirado para a visita), ele deverá verificar se ele deve ser visitado novamente (verifique se já foi visitado antes de currentElement). Nesse caso, ele deve remover o link do InternalElementList usando os métodos MarkForRemovalFromInternalElementList e RemoveMarkedElements e adicioná-lo à fila para ser visitado novamente. (Herdado de ElementWalker) |
| Traverse(ICollection<ModelElement>) |
Atravessa o modelo começando nos elementos iniciais especificados. (Herdado de ElementWalker) |
| Traverse(ModelElement) |
Percorrer o modelo começando no elemento inicial especificado. (Herdado de ElementWalker) |
| Visited(ModelElement) |
Determina se o elemento fornecido foi visitado ou não (Herdado de ElementWalker) |