/// <summary> /// This method calculates a moniker to a given NestedClass instance. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">NestedClass instance to calculate qualified name for.</param> /// <returns>A fully qualified string moniker to the NestedClass instance.</returns> public override string CalculateQualifiedName(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion NestedClass instance = element as NestedClass; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of NestedClass!"); string key = instance.Name; string containerMoniker = null; DslModeling::ModelElement container = instance.Model; if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); containerMoniker = containerSerializer.CalculateQualifiedName(directory, container); } if (string.IsNullOrEmpty(containerMoniker)) { return string.Format(global::System.Globalization.CultureInfo.CurrentCulture, "/{0}", key); } else if (DslModeling::SimpleMonikerResolver.IsFullyQualified(containerMoniker)) { return string.Format(global::System.Globalization.CultureInfo.CurrentCulture, "{0}/{1}", containerMoniker, key); } else { return string.Format(global::System.Globalization.CultureInfo.CurrentCulture, "/{0}/{1}", containerMoniker, key); } }
/// <summary> /// 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. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">ModelHasClass instance to get moniker qualifier from.</param> /// <returns> /// Value of this element's moniker qualifier property, if it has one, or the value of the container's moniker qualifier property. Or empty string if this /// element is not monikerized using standard /qualifier/key mechanism. /// </returns> public override string GetMonikerQualifier(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion ModelHasClass instance = element as ModelHasClass; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of ModelHasClass!"); DslModeling::ModelElement container = instance.Model; if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.GetMonikerQualifier(directory, container); } else { return string.Empty; } }
/// <summary> /// This method calculates a moniker to a given ActiveRecordMapping instance. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">ActiveRecordMapping instance to calculate qualified name for.</param> /// <returns>A fully qualified string moniker to the ActiveRecordMapping instance.</returns> public override string CalculateQualifiedName(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion ActiveRecordMapping instance = element as ActiveRecordMapping; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of ActiveRecordMapping!"); DslModeling::ModelElement container = DslModeling::DomainClassInfo.FindEmbeddingElement(instance); if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.CalculateQualifiedName(directory, container); } else { return string.Empty; } }
/// <summary> /// 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. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">InheritanceConnector instance to get moniker qualifier from.</param> /// <returns> /// Value of this element's moniker qualifier property, if it has one, or the value of the container's moniker qualifier property. Or empty string if this /// element is not monikerized using standard /qualifier/key mechanism. /// </returns> public override string GetMonikerQualifier(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion global::Microsoft.Data.Entity.Design.EntityDesigner.View.InheritanceConnector instance = element as global::Microsoft.Data.Entity.Design.EntityDesigner.View.InheritanceConnector; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of global::Microsoft.Data.Entity.Design.EntityDesigner.View.InheritanceConnector!"); DslModeling::ModelElement container = DslModeling::DomainClassInfo.FindEmbeddingElement(instance); if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.GetMonikerQualifier(directory, container); } else { return string.Empty; } }
/// <summary> /// This method calculates a moniker to a given EntityTypeHasNavigationProperties instance. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">EntityTypeHasNavigationProperties instance to calculate qualified name for.</param> /// <returns>A fully qualified string moniker to the EntityTypeHasNavigationProperties instance.</returns> public override string CalculateQualifiedName(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion global::Microsoft.Data.Entity.Design.EntityDesigner.ViewModel.EntityTypeHasNavigationProperties instance = element as global::Microsoft.Data.Entity.Design.EntityDesigner.ViewModel.EntityTypeHasNavigationProperties; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of global::Microsoft.Data.Entity.Design.EntityDesigner.ViewModel.EntityTypeHasNavigationProperties!"); DslModeling::ModelElement container = instance.EntityType; if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.CalculateQualifiedName(directory, container); } else { return string.Empty; } }
/// <summary> /// This method calculates a moniker to a given CustomizableElementHasPolicy instance. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">CustomizableElementHasPolicy instance to calculate qualified name for.</param> /// <returns>A fully qualified string moniker to the CustomizableElementHasPolicy instance.</returns> public override string CalculateQualifiedName(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion CustomizableElementHasPolicy instance = element as CustomizableElementHasPolicy; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of CustomizableElementHasPolicy!"); DslModeling::ModelElement container = instance.CustomizableElementSchema; if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.CalculateQualifiedName(directory, container); } else { return string.Empty; } }
/// <summary> /// This method calculates a moniker to a given DataContractBaseIsBeingReferenceOnDataContractCollections instance. /// </summary> /// <param name="directory">Directory to look up serializer based on model element type.</param> /// <param name="element">DataContractBaseIsBeingReferenceOnDataContractCollections instance to calculate qualified name for.</param> /// <returns>A fully qualified string moniker to the DataContractBaseIsBeingReferenceOnDataContractCollections instance.</returns> public override string CalculateQualifiedName(DslModeling::DomainXmlSerializerDirectory directory, DslModeling::ModelElement element) { #region Check Parameters global::System.Diagnostics.Debug.Assert (directory != null); if (directory == null) throw new global::System.ArgumentNullException ("directory"); global::System.Diagnostics.Debug.Assert(element != null); if (element == null) throw new global::System.ArgumentNullException("element"); #endregion DataContractBaseIsBeingReferenceOnDataContractCollections instance = element as DataContractBaseIsBeingReferenceOnDataContractCollections; global::System.Diagnostics.Debug.Assert(instance != null, "Expecting an instance of DataContractBaseIsBeingReferenceOnDataContractCollections!"); DslModeling::ModelElement container = instance.DataContractBase; if(container != null) { DslModeling::DomainClassXmlSerializer containerSerializer = directory.GetSerializer(container.GetDomainClass().Id); global::System.Diagnostics.Debug.Assert(containerSerializer != null, "Cannot find serializer for " + container.GetDomainClass().Name + "!"); return containerSerializer.CalculateQualifiedName(directory, container); } else { return string.Empty; } }