The Modeling namespace deals with additions, deletions, and modifications of elements and links when a model is created or modified.
Represents a rule that is called when an object is added to the model.
The exception that is thrown when a model element to be added to the store has the same moniker as another element already in the store.
Use with an ElementWalker to visit all aggregating relationships.
Visits the elements in the model, applying an action to each one. The action can update or accumulate results from the elements that are visited.
Represents a chaining filter, which adds filters to a list.
Represents a rule that is called when the value of a property of an element is changed.
Provides methods to add and retrieve closure context information to and from a particular element walker context.
Represents closure element operations.
Represents a closure operation to mark a find or create target element operation.
Represents a closure operation to find and relate to an element or delete the copied element if the target is not found.
Represents a closure operation that marks a find target element operation.
Represents a closure operation that marks a find or create target element operation.
Represents a closure operation that marks a find or create target element operation.
Contains the mapping of transactions to partitions.
Base class for copy closure visitor filter
Provides information about the origin of the ElementGroupPrototype.
Copy closure visitor filter
Base class for copy closure visitor filter
Remove closure visitor filter
Base class for remove closure visitor filter
Represents the domain model that defines the basic elements used by all domain models.
A DomainXmlSerializationBehavior implementation for defined behavior CoreDomainModelSerializationBehavior.
Visits all aggregate relationships.
Represents a rule that is called when an object is deleted from the model. Executes after the corresponding DeletingRule.
Represents a rule that is called when an element is about to be deleted in the model.
Attribute class used to specify the domain model the current domain model extends.
Visits the elements in the model, applying an action to each one. Links can be included.
Enables depth-first traversals of the model starting from a particular element or group of elements. Provides notification of begin and end traversing an element and its descendants.
Provides data for the DeserializationEnding event and notifies listeners that deserialization has ended.
Represents a domain class.
Represents the base class for all generated domain serializers.
Stores metadata about the domain models in the store.
This exception is thrown by the DomainDataDirectory class when a domain element that has a specific identity is not found in the directory.
Stores information about a domain property in a domain model.
Represents a domain model. This is the base class of the domain model of your DSL.
Defines the MEF contract for a type that provides a mapping between a domain model extension and the domain model it extends
Represents a domain model definition.
In the code generated from a domain type, indicates the domain model in which a domain class is defined.F905
Custom attribute used to indicate that a class is a domain model serializer, and the type of domain model it serializes.
Represents the ID of a domain object.
Represents an element in a domain model.
Indicates that the target is a domain property of a domain class.
Represents a property of a domain class.
The base class for all custom domain property serializers
Indicates that the target is a domain relationship.
Represents the metadata about a domain relationship.
Represents the base class for all generated domain serializers for domain relationships.
Indicates that the target is a domain role of a domain relationship.
Represents a role of a domain relationship.
Stores information that is used by the domain model reflector to locate a domain role.
Represents all XML serialization behavior-generated classes.
Combines XML serialization behaviors from different domain models together.
Associates one domain class ID to its DomainClassXmlSerializer type.
An tuple that links one Domain Model to its xml namepace type.
An tuple that maps a type to the serializer type to use.
Provides data for the ElementAdded event.
Manages element added events.
Represents a walker that builds closures on model elements.
Provides data for the ElementDeleted event.
Manages element removed events.
Provides data for the ElementDeleting event.
A rule that fires when new ModelElements are created, used by SimpleMonikerResolver to monitor new elements.
Provides data for notifications associated with a model element.
In derived classes, provides a mechanism for observers to register for and be notified of changes to an element within the scope of the store.
Provides data for the ElementEventsBegun event.
Manages events that have begun for elements.
Provides data for the ElementEventsEnded event.
Manages element events ended events.
Represents a factory of domain model objects.
Provides a way to collect elements and element links.
Stores context information about an element group.
Contains the information necessary to recreate a set of elements and links. Used to store elements in tools, on the clipboard, and in a drag operation.
Base class for all domain relationships.
Provides data for the ElementMoved event.
Manages element moved events.
Indicates the target domain property provides the element name property.
Represents a name provider for domain elements.
Provides common operations that act upon a collection of model elements.
Provides data for the ElementPropertyChanged event.
Manages element property changed events.
Enables various traversals of the model starting from a particular element.
Visits all embedding relationships.
Enables you to add or remove custom code to run when an event is raised.
In a derived class, manages element events.
Obsolete.Indicates the domain model that this domain model extends.
Base class for all domain model element extensions. Allows a DSL Definition to be extended by a third party.
Serializer ExtensionElementSerializer for DomainClass ExtensionElement.
DomainRelationship ExtensionExtendsElement Reference relationship between ElementExtension and ModelElement
Serializer ExtensionExtendsElementSerializer for DomainClass ExtensionExtendsElement.
Abstract base class for all event arguments for element events.
When overridden in a derived class, enables observers to register for and be notified of changes within a store.
Represents the exception that is thrown when an internal error occurs inside the modeling engine.
Represents an exception that is thrown when an error is encountered with the metadata assigned to a domain model.
Provides convenience methods to extend the standard ISerializerLocator interface
Provides a collection of all elements that are linked to an element.
Defines the string constants for the names of domain model MEF metadata keys
Represents an exception that is thrown when a merge operation on a domain model is aborted by the user.
Provides merge information initially set by the merge process when the objects of a ElementGroupPrototype are reconstituted into the target store.
Provides data for the MergeElementGroup event.
The base class for all domain model elements. All elements and links in a DomainModel are members of this type.
Provides data for modeling events.
Represents the base class for several exceptions thrown by the modeling engine.
Contains an expression used to map to its element.
Represents the key of a Moniker.
Represents a rule that is called when an object is moved in the model.
Provides a logical container for elements in a store.
Represents a collection of partitions.
Visits all PropagateRemove relationships.
Represents a property assignment pair that consists of property ID and a property value.
Represents the prototype class for an element.
Represents the prototype for the element.
Contains the information to re-create an ElementGroup in the context of any store.
Contains the information needed to recreate an ElementLink in any store.
Contains the information necessary to populate an attribute value for a particular model element.
Contains the data necessary to set the role player data on an ElementLink.
Custom attribute used to indicate that a domain model is an extension of another domain model.
Represents a strongly-typed read-only collection of element instances on the opposite side of a relationship.
Event args for the RedoStackFlushed event.
Provides information to initialize a role that is assigned to a link element.
Provides data for the RolePlayerChanged event.
Manages events that are changed by the role.
Represents a rule that is called when a role player in the model changes.
Provides data for the RolePlayerOrderChanged event.
Manages events that are changed when the order of the model elements that are assigned to roles change.
Represents a rule that is called when a model element that is assigned to a specific role changes position in a multiple relationship.
Similar to System.Xml.XmlWriterSettings, this class stores settings that need to be passed to a serializer when serializing a root element. Root element has additional information like schema target namespace, versions, etc., so additional information may be needed.
Abstract class from which different types of store rule can be derived.
Controls whether rules are enabled or disabled.
Signifies that the class to which this attribute is applied is a rule. The attribute’s parameter specifies what domain class applies to.
Defines the context of a serialization operation.
Extension methods for accessing SerializationContext in the scope of a Transaction
Throws a SerializationResult as an exception.
Represents a serialization message.
Represents a serialization result.
Provides utilities for serialization.
Resolves simple string references when the model is serialized using the default XML serialization.
Standard implementation of the IExtensionLocator interface
Standard implementation of the ISerializerLocator interface
The store contains an in-memory representation of the elements and links in one or more models.
A transaction makes sure that changes that were made to the store are treated as a group that can be committed or rolled back.
Provides data for the TransactionBeginning event.
Manages transaction beginning events.
Represents a rule that is called when a transaction is beginning in the model.
Provides data for the TransactionCommit event.
Manages transaction committed events.
Represents a rule that is called when a transaction is in progress in the model.
Stores user data in a transaction.
Provides data for transaction events.
Represents the base class for managing notifications of transaction events.
Represents a transaction item.
Represents a container of transaction events.
Creates Transaction objects and keeps track of the current active transaction.
Manages transaction rollback events.
Represents a rule that is called when a transaction is being rolled back in the model.
Provides data for the UndoItem event.
Provides the functionality for undo and redo operations.
Represents the exception that is thrown when an undo or redo operation has been canceled.
Returns various standard visitor filters.
Provides an enumerator over a ReadOnlyLinkedElementCollection
Defines the contract for a standard domain model serializer.
Directory of model elements that are contained within a store or a partition.
Interface for service used to map elements partitions when reconstituting ElementGroupPrototypes
Defines the traversal of a model.
Provides a callback mechanism for filtering out which role players and which relationships should be visited during traversal by an ElementWalker.
This interface provides a way for the generated serializers to resolve a schema target namespace to a domain model.
Allows classes in derived models to access the merge functionality on a model element.
Resolves a moniker to its element.
This interface provides a way for the generated serializers to resolve a schema target namespace. Given an XML file using a particular target namespace, it is important to find the schemas that define the namespace, so the generated serializers can do schema validations properly.
This interface provides a way to locate serializers for a domain model.
Interface marker to indicate that a particular object is transient and will be released (and disposed) on transaction commit
Service identifier for the element group rehydration partition mapping service
Enumeration status for the CanCommit callback.
Indicates the source of a change that was made during a transaction.
Describes the type of closure to create.
Describes how the transaction was completed.
Identifies the state of the element being deleted.
Specifies the type of domain property.
Specifies the direction of a domain role in a domain relationship.
Indicates the multiplicity for a domain role.
Enum that lists the various PropagateCopy options.
Formats the serialization message.
Determines when to call the rule.
Describes the undo state in the UndoManager.
Indicates whether an element should be visited.
The Modeling namespace classes allow your code to create and modify elements and links within transactions. The Store is the class that represents the contents (elements and links) of a model in memory. Whenever you programmatically make changes to a model, these changes must be done within a Transaction.
You can define rules that are run when certain things happen, such as an element or a link being added, changed, or deleted.
You can also subscribe to be notified when an event such as a transaction being rolled back occurs.
The difference between rules and events is that rules are fired within a transaction while events are fired after a transaction is committed.