Partilhar via


ModelElement Class

Definition

Base class (root of hierarchy) for all domain model elements.

public ref class ModelElement abstract : Microsoft::VisualStudio::Modeling::IMergeElements
[Microsoft.VisualStudio.Modeling.DomainObjectId("2b13e0d1-7959-458d-834f-2dc0769ce683")]
[System.ComponentModel.TypeDescriptionProvider(typeof(Microsoft.VisualStudio.Modeling.Design.ElementTypeDescriptionProvider))]
public abstract class ModelElement : Microsoft.VisualStudio.Modeling.IMergeElements
[<Microsoft.VisualStudio.Modeling.DomainObjectId("2b13e0d1-7959-458d-834f-2dc0769ce683")>]
[<System.ComponentModel.TypeDescriptionProvider(typeof(Microsoft.VisualStudio.Modeling.Design.ElementTypeDescriptionProvider))>]
type ModelElement = class
    interface IMergeElements
Public MustInherit Class ModelElement
Implements IMergeElements
Inheritance
ModelElement
Derived
Attributes
Implements

Constructors

ModelElement(Partition, PropertyAssignment[])

Constructor.

Fields

DomainClassId

Id of the ModelElement's domain class.

Properties

Id

Unique identifier of this element.

IsActive

Returns true if the Element is currently active within the model, false if the element has been deleted or is in the process of being deleted.

IsDeleted

Has the element been deleted from the model. (Deleted elements are not immediately destroyed so that the undo command may undo deleting the element.)

IsDeleting

Has the element been deleted from the model. (Deleted elements are not immediately destroyed so that the undo command may undo deleting the element.)

Partition

Gets or sets the Partition instance that contains this element.

Store

Get the Store instance that contains this element.

Methods

AddExtension(ModelElement, DomainClassInfo)

Extend the specified ModelElement with a newly instantiated extension of the specified domain type. An InvalidOperationException will be thrown if the element already has an extension of the same type.

AddExtension(ModelElement, ExtensionElement)

Extend the specified ModelElement with a specified extension. An InvalidOperationException will be thrown if the element already has an extension of the same type.

AddExtension(ModelElement, Guid)

Extend the specified ModelElement with a newly instantiated extension of the identified domain type. An InvalidOperationException will be thrown if the element already has an extension of the same type.

AddExtension(ModelElement, Type)

Extend the specified ModelElement with a newly instantiated extension of the specified type. An InvalidOperationException will be thrown if the element already has an extension of the same type.

AddExtension<T>(ModelElement)

Extend the specified ModelElement with a newly instantiated extension of a particular type. An InvalidOperationException will be thrown if the element already has an extension of the same type.

CanMerge(ProtoElementBase, ElementGroupPrototype)

Returns a value indicating whether the source element represented by the specified root ProtoElement can be added to this element.

ChooseMergeTarget(ElementGroup)

Gets the ModelElement to be used as the target for the ElementGroup merge process.
This is called by the merge process when this element is the target of the merge.
This provides this element with the opportunity to change the target to something other than itself.

ChooseMergeTarget(ElementGroupPrototype)

Gets the ModelElement to be used as the target for the ElementGroupPrototype merge process.
This is called by the merge process when this element is the target of the merge.
This provides this element with the opportunity to change the target to something other than itself.

Copy()

Creates a copy of the element in the model.

Copy(IEnumerable<Guid>)

Creates a copy of the element in the model.

Delete()

Deletes the element from the model.

Delete(Guid[])

Deletes the element from the model.

GetAllExtensions(ModelElement)

Return an enumerable that performs a breadth first traversal across the tree of extension elements embedded in the specified ModelElement.

GetBaseElement(ModelElement)

Returns the root of the virtual MEL in which the specified ModelElement is participating.

GetDomainClass()

Gets the most-derived domain class for this element.

GetExtension(ModelElement, DomainClassInfo)
GetExtension(ModelElement, Guid)
GetExtension(ModelElement, Type)

Get the ExtensionElement of the specified type from the available extensions of the specified ModelElement. If the element has no such extension then an InvalidOperationException will be raised.

GetExtension<T>(ModelElement)

Get the ExtensionElement of the specified type from the available extensions of the specified ModelElement. If the element has no such extension then an InvalidOperationException will be raised.

GetRoleCollection<TCollection,TElement>(Guid)

Gets or creates the linked element collection

GetRoleCollection<TCollection,TElement>(ModelElement, Guid)

Gets or creates the linked element collection

IsExtendedBy(ModelElement, DomainClassInfo)

Query whether the specified ModelElement is currently extended by an ExtensionElement of a particular type.

IsExtendedBy(ModelElement, Guid)

Query whether the specified ModelElement is currently extended by an ExtensionElement of a particular type.

IsExtendedBy(ModelElement, Type)

Query whether the specified ModelElement is currently extended by an ExtensionElement of a particular type.

MergeConfigure(ElementGroup)

Called by the Merge process to allow this model element to configure itself immediately after the Merge process has related it to the target element.

MergeDisconnect(ModelElement)

Performs operation opposite to MergeRelate - i.e. disconnects a given element from the current one (removes links created by MergeRelate).

MergeRelate(ModelElement, ElementGroup)

Called by the Merge process to create a relationship between this target element and the specified source element. Typically, a parent-child relationship is established between the target element (the parent) and the source element (the child), but any relationship can be established.

OnCopy(ModelElement)

Called when a copy of the element has been created. The method is called on the duplicate element.

OnDeleted()

Called by the model after the element has been deleted.

OnDeleting()

Called by the model before the element is deleted.

OnResurrected()

Called by the model after the element has been resurrected (placed back into the store).

OnRolePlayerPositionChanged(DomainRoleInfo, ElementLink, Int32, Int32)

Virtual method for notifying when role player position has changed.

OnRolePlayerPositionChanging(DomainRoleInfo, ElementLink, Int32, Int32)

Virtual method for notifying when role player position will be changing.

RemoveExtension(ModelElement, DomainClassInfo)

Remove any extension of the specified ModelElement that is of a particular domain type.

RemoveExtension(ModelElement, ExtensionElement)

Remove a specified ExtensionElement from the extensions of the specified ModelElement.

RemoveExtension(ModelElement, Guid)

Remove any extension of the specified ModelElement that is of a particular type.

RemoveExtension(ModelElement, Type)

Remove any extension of the specified ModelElement that is of a particular type.

TryGetExtension(ModelElement, DomainClassInfo)
TryGetExtension(ModelElement, Guid)
TryGetExtension(ModelElement, Type)
TryGetExtension<T>(ModelElement)

Get the ExtensionElement of the specified type from the available extensions of the specified ModelElement. If the element has no such extension then the result will be null.

Explicit Interface Implementations

IMergeElements.CanMerge(ProtoElementBase, ElementGroupPrototype)
IMergeElements.ChooseMergeTarget(ElementGroup)
IMergeElements.ChooseMergeTarget(ElementGroupPrototype)
IMergeElements.MergeConfigure(ElementGroup)
IMergeElements.MergeDisconnect(ModelElement)
IMergeElements.MergeRelate(ModelElement, ElementGroup)

Extension Methods

AddExtension(ModelElement, DomainClassInfo)

Extend this ModelElement with a newly instantiated extension of the specified domain type. An InvalidOperationException will be thrown if the element already has an extension of that type.

AddExtension(ModelElement, ExtensionElement)

Extend this ModelElement with a specific extension. An InvalidOperationException will be thrown if the element already has an extension of the same type.

AddExtension(ModelElement, Guid)

Extend this ModelElement with newly instantiated extension of the identified domain type. An InvalidOperationException will be thrown if the element already has an extension of that type.

AddExtension(ModelElement, Type)

Extend this ModelElement with a newly instantiated extension of the specified type. An InvalidOperationException will be thrown if the element already has an extension of that type.

AddExtension<T>(ModelElement)

Extend this ModelElement with a newly instantiated extension of a particular type. An InvalidOperationException will be thrown if the element already has an extension of the same type.

GetAllExtensions(ModelElement)

Return an enumerable that performs a breadth first traversal across the tree of extension elements embedded in this ModelElement.

GetBaseElement(ModelElement)

Returns the root of the virtual MEL in which the specified ModelElement is participating.

GetExtension(ModelElement, DomainClassInfo)
GetExtension(ModelElement, Guid)
GetExtension(ModelElement, Type)

Get the ExtensionElement of the specified type from the available extensions of this ModelElement. If the element has no such extension then an InvalidOperationException will be raised.

GetExtension<T>(ModelElement)

Get the ExtensionElement of the specified type from the available extensions of this ModelElement. If the element has no such extension then an InvalidOperationException will be raised.

IsExtendedBy(ModelElement, DomainClassInfo)

Query whether this ModelElement is currently extended by an ExtensionElement of a particular type.

IsExtendedBy(ModelElement, Guid)

Query whether this ModelElement is currently extended by an ExtensionElement of a particular type.

IsExtendedBy(ModelElement, Type)

Query whether this ModelElement is currently extended by an ExtensionElement of a particular type.

RemoveExtension(ModelElement, DomainClassInfo)

Remove any extension of the specified ModelElement that is of a particular type.

RemoveExtension(ModelElement, ExtensionElement)

Remove a specified ExtensionElement from the extensions of this ModelElement.

RemoveExtension(ModelElement, Guid)

Remove any extension of the specified ModelElement that is of a particular type.

RemoveExtension(ModelElement, Type)

Remove any extension of this ModelElement that is of a particular type.

TryGetExtension(ModelElement, DomainClassInfo)
TryGetExtension(ModelElement, Guid)
TryGetExtension(ModelElement, Type)
TryGetExtension<T>(ModelElement)

Get the ExtensionElement of the specified type from the available extensions of this ModelElement. If this element has no such extension then the result will be null.

CanDelete(ModelElement, Guid[])

Deletes the element from the model.

GetLocks(ModelElement)

Get the lock flags for this element. This will include any locks enabled on the Partition containing the element.

IsLocked(ModelElement, Locks)

Test whether this element has any of a specified set of locks

SetLocks(ModelElement, Locks)

Set the lock flags of this element

Applies to