C# Class Company.OrmLanguage.EntityElementSerializer

Serializer EntityElementSerializer for DomainClass EntityElement.
Inheritance: DslModeling::DomainClassXmlSerializer
Show file Open project: thabart/SimpleOrm

Public Methods

Method Description
CalculateQualifiedName ( global::Microsoft.VisualStudio.Modeling directory, global::Microsoft.VisualStudio.Modeling element ) : string

This method calculates a moniker to a given EntityElement instance.

EntityElementSerializer ( )

EntityElementSerializer Constructor

GetMonikerQualifier ( global::Microsoft.VisualStudio.Modeling directory, global::Microsoft.VisualStudio.Modeling element ) : string

A domain class can be monikerized in different ways: standard /qualifier/key mechanism, custom moniker, or element ID. If the domain class is serialized using standard /qualifier/key mechanism, this method returns the qualifier of the moniker; if the domain class uses other ways for monikerization, this method returns empty string.

Read ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global reader ) : void

Public Read() method that deserializes one EntityElement instance from XML.

When this method is called, caller guarantees that the passed-in XML reader is positioned at the open XML tag of the EntityElement element that is about to be deserialized. The method needs to ensure that when it returns, the reader is positioned at the open XML tag of the next sibling element, or the close tag of the parent element (or EOF).

Reset ( ) : void

Reset the serializer

Clear the cached information about any derived classes so that it is recalculated.

TryCreateInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::ModelElement

This method creates a correct instance of EntityElement based on the tag currently pointed by the reader. If the reader is positioned at a serialized EntityElement, a new EntityElement instance will be created in the given partition, otherwise null is returned.

The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.

TryCreateMonikerInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global relDomainClassId, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::Moniker

This method creates a Moniker of the correct derived (including EntityElement itself) instance of EntityElement based on the tag currently pointed by the reader.

The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.

Write ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer, global::Microsoft.VisualStudio.Modeling rootElementSettings ) : void

Public Write() method that serializes one EntityElement instance into XML.

WriteMoniker ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global::Microsoft.VisualStudio.Modeling relSerializer ) : void

Public WriteMoniker() method that writes a monikerized EntityElement instance into XML.

Protected Methods

Method Description
CreateInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::ModelElement

This method creates an instance of EntityElement based on the tag currently pointed by the reader. The reader is guaranteed (by the caller) to be pointed at a serialized instance of EntityElement.

The caller will guarantee that the reader is positioned at open XML tag of the ModelRoot instance being read. This method should not move the reader; the reader should remain at the same position when this method returns.

CreateMonikerInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global relDomainClassId, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::Moniker

This method creates a Moniker of EntityElement based on the tag currently pointed by the reader.

The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.

ReadElements ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global reader ) : void

This methods deserializes nested XML elements inside the passed-in element.

The caller will guarantee that the current element does have nested XML elements, and the call will position the reader at the open tag of the first child XML element. This method will read as many child XML elements as it can. It returns under three circumstances: 1) When an unknown child XML element is encountered. In this case, this method will position the reader at the open tag of the unknown element. This implies that if the first child XML element is unknown, this method should return immediately and do nothing. 2) When all child XML elemnets are read. In this case, the reader will be positioned at the end tag of the parent element. 3) EOF.

WriteElements ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer ) : void

This methods serializes 1) properties serialized as nested XML elements and 2) child model elements into XML.

Private Methods

Method Description
ConstructDerivedClassMonikersLookupTable ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling domainDataDirectory ) : void

Construct the mapping from Moniker Xml tag name to DomainClassInfo that derives from EntityElement.

ConstructDerivedClassesLookupTable ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling domainDataDirectory ) : void

Construct the apping from XmlTagName to DomainClassInfo that derives from EntityElement.

ReadChildElements ( global::Microsoft.VisualStudio.Modeling serializationContext, EntityElement element, global reader ) : void

This method deserializes all child model elements.

The caller will position the reader at the open tag of the first child XML element to deserialized. This method will read as many child elements as it can. It returns under three circumstances: 1) When an unknown child XML element is encountered. In this case, this method will position the reader at the open tag of the unknown element. This implies that if the first child XML element is unknown, this method should return immediately and do nothing. 2) When all child XML elemnets are read. In this case, the reader will be positioned at the end tag of the parent element. 3) EOF.

ReadEntityHasPropertiesInstances ( global::Microsoft.VisualStudio.Modeling serializationContext, EntityElement element, global reader ) : void

Reads all instances of relationship EntityHasProperties.

The caller will position the reader at the open tag of the first XML element inside the relationship tag, so it can be either the first instance, or a bogus tag. This method will deserialize all instances and ignore all bogus tags. When the method returns, the reader will be positioned at the end tag of the relationship (or EOF if somehow that happens).

ReadEntityHasReferencesInstances ( global::Microsoft.VisualStudio.Modeling serializationContext, EntityElement element, global reader ) : void

Reads all instances of relationship EntityHasReferences.

The caller will position the reader at the open tag of the first XML element inside the relationship tag, so it can be either the first instance, or a bogus tag. This method will deserialize all instances and ignore all bogus tags. When the method returns, the reader will be positioned at the end tag of the relationship (or EOF if somehow that happens).

ReadEntityHasRelationShipsInstances ( global::Microsoft.VisualStudio.Modeling serializationContext, EntityElement element, global reader ) : void
ReadPropertiesFromAttributes ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global reader ) : void
WriteChildElements ( global::Microsoft.VisualStudio.Modeling serializationContext, EntityElement element, global writer ) : void
WritePropertiesAsAttributes ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer ) : void

Method Details

CalculateQualifiedName() public method

This method calculates a moniker to a given EntityElement instance.
public CalculateQualifiedName ( global::Microsoft.VisualStudio.Modeling directory, global::Microsoft.VisualStudio.Modeling element ) : string
directory global::Microsoft.VisualStudio.Modeling Directory to look up serializer based on model element type.
element global::Microsoft.VisualStudio.Modeling EntityElement instance to calculate qualified name for.
return string

CreateInstance() protected method

This method creates an instance of EntityElement based on the tag currently pointed by the reader. The reader is guaranteed (by the caller) to be pointed at a serialized instance of EntityElement.
The caller will guarantee that the reader is positioned at open XML tag of the ModelRoot instance being read. This method should not move the reader; the reader should remain at the same position when this method returns.
protected CreateInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::ModelElement
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
reader global XmlReader to read serialized data from.
partition global::Microsoft.VisualStudio.Modeling Partition in which new EntityElement instance should be created.
return DslModeling::ModelElement

CreateMonikerInstance() protected method

This method creates a Moniker of EntityElement based on the tag currently pointed by the reader.
The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.
protected CreateMonikerInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global relDomainClassId, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::Moniker
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
reader global XmlReader to read serialized data from.
sourceRolePlayer global::Microsoft.VisualStudio.Modeling The source role-player instance from which the moniker being created is referenced.
relDomainClassId global The DomainClass Id of the relationship that connects the sourceRolePlayer to the moniker being created.
partition global::Microsoft.VisualStudio.Modeling The new Moniker should be created in the Store associated with this partition.
return DslModeling::Moniker

EntityElementSerializer() public method

EntityElementSerializer Constructor

GetMonikerQualifier() public method

A domain class can be monikerized in different ways: standard /qualifier/key mechanism, custom moniker, or element ID. If the domain class is serialized using standard /qualifier/key mechanism, this method returns the qualifier of the moniker; if the domain class uses other ways for monikerization, this method returns empty string.
public GetMonikerQualifier ( global::Microsoft.VisualStudio.Modeling directory, global::Microsoft.VisualStudio.Modeling element ) : string
directory global::Microsoft.VisualStudio.Modeling Directory to look up serializer based on model element type.
element global::Microsoft.VisualStudio.Modeling EntityElement instance to get moniker qualifier from.
return string

Read() public method

Public Read() method that deserializes one EntityElement instance from XML.
When this method is called, caller guarantees that the passed-in XML reader is positioned at the open XML tag of the EntityElement element that is about to be deserialized. The method needs to ensure that when it returns, the reader is positioned at the open XML tag of the next sibling element, or the close tag of the parent element (or EOF).
public Read ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global reader ) : void
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
element global::Microsoft.VisualStudio.Modeling In-memory EntityElement instance that will get the deserialized data.
reader global XmlReader to read serialized data from.
return void

ReadElements() protected method

This methods deserializes nested XML elements inside the passed-in element.
The caller will guarantee that the current element does have nested XML elements, and the call will position the reader at the open tag of the first child XML element. This method will read as many child XML elements as it can. It returns under three circumstances: 1) When an unknown child XML element is encountered. In this case, this method will position the reader at the open tag of the unknown element. This implies that if the first child XML element is unknown, this method should return immediately and do nothing. 2) When all child XML elemnets are read. In this case, the reader will be positioned at the end tag of the parent element. 3) EOF.
protected ReadElements ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global reader ) : void
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
element global::Microsoft.VisualStudio.Modeling In-memory EntityElement instance that will get the deserialized data.
reader global XmlReader to read serialized data from.
return void

Reset() public method

Reset the serializer
Clear the cached information about any derived classes so that it is recalculated.
public Reset ( ) : void
return void

TryCreateInstance() public method

This method creates a correct instance of EntityElement based on the tag currently pointed by the reader. If the reader is positioned at a serialized EntityElement, a new EntityElement instance will be created in the given partition, otherwise null is returned.
The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.
public TryCreateInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::ModelElement
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
reader global XmlReader to read serialized data from.
partition global::Microsoft.VisualStudio.Modeling Partition in which new elements should be created.
return DslModeling::ModelElement

TryCreateMonikerInstance() public method

This method creates a Moniker of the correct derived (including EntityElement itself) instance of EntityElement based on the tag currently pointed by the reader.
The caller will guarantee that the reader is positioned at open XML tag of the next element being read. This method should not move the reader; the reader should remain at the same position when this method returns.
public TryCreateMonikerInstance ( global::Microsoft.VisualStudio.Modeling serializationContext, global reader, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global relDomainClassId, global::Microsoft.VisualStudio.Modeling partition ) : DslModeling::Moniker
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
reader global XmlReader to read serialized data from.
sourceRolePlayer global::Microsoft.VisualStudio.Modeling The source role-player instance from which the moniker being created is referenced.
relDomainClassId global The DomainClass Id of the relationship that connects the sourceRolePlayer to the moniker being created.
partition global::Microsoft.VisualStudio.Modeling The new Moniker should be created in the Store associated with this partition.
return DslModeling::Moniker

Write() public method

Public Write() method that serializes one EntityElement instance into XML.
public Write ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer, global::Microsoft.VisualStudio.Modeling rootElementSettings ) : void
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
element global::Microsoft.VisualStudio.Modeling EntityElement instance to be serialized.
writer global XmlWriter to write serialized data to.
rootElementSettings global::Microsoft.VisualStudio.Modeling /// The root element settings if the passed in element is serialized as a root element in the XML. The root element contains additional /// information like schema target namespace, version, etc. /// This should only be passed for root-level elements. Null should be passed for rest elements (and ideally call the Write() method /// without this parameter). ///
return void

WriteElements() protected method

This methods serializes 1) properties serialized as nested XML elements and 2) child model elements into XML.
protected WriteElements ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer ) : void
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
element global::Microsoft.VisualStudio.Modeling EntityElement instance to be serialized.
writer global XmlWriter to write serialized data to.
return void

WriteMoniker() public method

Public WriteMoniker() method that writes a monikerized EntityElement instance into XML.
public WriteMoniker ( global::Microsoft.VisualStudio.Modeling serializationContext, global::Microsoft.VisualStudio.Modeling element, global writer, global::Microsoft.VisualStudio.Modeling sourceRolePlayer, global::Microsoft.VisualStudio.Modeling relSerializer ) : void
serializationContext global::Microsoft.VisualStudio.Modeling Serialization context.
element global::Microsoft.VisualStudio.Modeling EntityElement instance to be monikerized.
writer global XmlWriter to write serialized data to.
sourceRolePlayer global::Microsoft.VisualStudio.Modeling Source element that references the EntityElement instance being monikerized.
relSerializer global::Microsoft.VisualStudio.Modeling Serializer that handles the relationship connecting the source element to the EntityElement instance being monikerized.
return void