DslDefinitionModelDeleteClosure Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет фильтр посетителя закрытия
public ref class DslDefinitionModelDeleteClosure : Microsoft::VisualStudio::Modeling::DslDefinition::DslDefinitionModelDeleteClosureBase, Microsoft::VisualStudio::Modeling::IElementVisitorFilter
[System.CLSCompliant(true)]
public class DslDefinitionModelDeleteClosure : Microsoft.VisualStudio.Modeling.DslDefinition.DslDefinitionModelDeleteClosureBase, Microsoft.VisualStudio.Modeling.IElementVisitorFilter
[<System.CLSCompliant(true)>]
type DslDefinitionModelDeleteClosure = class
inherit DslDefinitionModelDeleteClosureBase
interface IElementVisitorFilter
Public Class DslDefinitionModelDeleteClosure
Inherits DslDefinitionModelDeleteClosureBase
Implements IElementVisitorFilter
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс определен в.. \Женератедкоде\домаинмодел.КС, который создается из модели определения DSL.
Конструкторы
| DslDefinitionModelDeleteClosure() |
Конструктор |
Методы
| ShouldVisitRelationship(ElementWalker, ModelElement, DomainRoleInfo, DomainRelationshipInfo, ElementLink) |
Вызывается, чтобы запросить фильтр, если конкретная связь от исходного элемента должна быть включена в обход (Унаследовано от DslDefinitionModelDeleteClosureBase) |
| ShouldVisitRolePlayer(ElementWalker, ModelElement, ElementLink, DomainRoleInfo, ModelElement) |
Этот метод вызывается, чтобы запросить фильтр, если во время обхода должен быть посещен определенный исполнитель роли, связанный с объектом ElementLink. Это переопределяет созданный метод ShouldVisitRolePlayer(), который проверяет атрибут PropagateDelete на объекте ElementLink, чтобы решить, требуется ли посетить связанные исполнители роли. В этом случае RelationshipPort — фигура, нарисованная как маленький квадрат где отношение соединено с классом — не была удалена с отношением. Причина в том, что связь, используемая для соединения RelationshipPort (фигура) с RoleConnector (также фигура), является подтипом ElementLink, называемым LinkConnectsToNode. Экземпляры этого типа связи используются для связывания различных фигур NodeShape с фигурами LinkShape, поэтому не распространяют удаления, хотя в случае RelationshipPort должны это делать. Эта же проблема существовала для порта InheritancePort, который, как и RelationshipPort, расширяет TogglePort. Этот метод вызывается для каждого объекта ElementLink, посещенного во время удаления. Если рассматриваемая связь представляет собой экземпляр LinkConnectsToNode, а исполнитель роли — TogglePort, фигура порта может быть больше не нужна. Проверяя количество ссылок, оставленных на целевого игрока роли, этот метод возвращает VisitorFilterResult.YES, если ровно одна ссылка на порт, VisitorFilterResult.DoNotCare в противном случае. Это гарантирует, что при удалении последней связи, идущей к узлу, также удаляется фигура порта. |