示例#1
0
		/// <summary>
		/// Implements <see cref="IVerbalize.GetVerbalization"/>
		/// </summary>
		protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
		{
			// We are redirected to this point by the associated Table element
			ConceptType conceptType = this.ConceptType;
			ObjectType objectType;
			if (null != (objectType = ConceptTypeIsForObjectType.GetObjectType(conceptType)))
			{
				verbalizationContext.DeferVerbalization(objectType, DeferVerbalizationOptions.None, null);
				foreach (ConceptType alsoForConceptType in TableIsAlsoForConceptType.GetConceptType(this.Table))
				{
					if (null != (objectType = ConceptTypeIsForObjectType.GetObjectType(alsoForConceptType)))
					{
						writer.WriteLine();
						verbalizationContext.DeferVerbalization(objectType, DeferVerbalizationOptions.None, null);
					}
				}
			}
			return false;
		}
示例#2
0
		/// <summary>
		/// Implements <see cref="IVerbalize.GetVerbalization"/>
		/// </summary>
		protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
		{
			// We are redirected to this point by the associated Column element
			Column column = this.Column;
			bool firstWrite = true;
			foreach (ConceptTypeChild child in ColumnHasConceptTypeChild.GetConceptTypeChildPath(this.Column))
			{
				foreach (FactType factType in ConceptTypeChildHasPathFactType.GetPathFactTypeCollection(child))
				{
					if (firstWrite)
					{
						firstWrite = false;
					}
					else
					{
						writer.WriteLine();
					}
					verbalizationContext.DeferVerbalization(factType, DeferVerbalizationOptions.MultipleVerbalizations, null);
				}
			}
			return false;
		}
示例#3
0
 /// <summary>
 /// Implements IVerbalizeCustomChildren.GetCustomChildVerbalizations. Hides
 /// implementation in <see cref="FactType"/>
 /// </summary>
 protected static new IEnumerable <CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, IDictionary <string, object> verbalizationOptions, VerbalizationSign sign)
 {
     yield break;
 }
示例#4
0
                    bool IVerbalize.GetVerbalization(TextWriter writer, IDictionary <Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
                    {
                        CustomPropertyDefinition propertyDefinition = myDefinition;
                        object defaultValue = propertyDefinition.DefaultValue;

                        verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
                        writer.Write(string.Format(
                                         ((IVerbalizationSets <CustomPropertyVerbalizationSnippetType>)snippetsDictionary[typeof(CustomPropertyVerbalizationSnippetType)]).GetSnippet(CustomPropertyVerbalizationSnippetType.CustomPropertiesVerbalization),
                                         propertyDefinition.Name,
                                         propertyDefinition.DefaultValue.ToString(),
                                         propertyDefinition.CustomPropertyGroup.Name,
                                         propertyDefinition.Description));
                        return(true);
                    }
示例#5
0
					bool IVerbalize.GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
					{
						CustomPropertyDefinition propertyDefinition = myDefinition;
						object defaultValue = propertyDefinition.DefaultValue;
						verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
						writer.Write(string.Format(
							((IVerbalizationSets<CustomPropertyVerbalizationSnippetType>)snippetsDictionary[typeof(CustomPropertyVerbalizationSnippetType)]).GetSnippet(CustomPropertyVerbalizationSnippetType.CustomPropertiesVerbalization),
							propertyDefinition.Name,
							propertyDefinition.DefaultValue.ToString(),
							propertyDefinition.CustomPropertyGroup.Name,
							propertyDefinition.Description));
						return true;
					}
示例#6
0
文件: Role.cs 项目: cjheath/NORMA
		/// <summary>
		/// Implements <see cref="IVerbalizeCustomChildren.GetCustomChildVerbalizations"/>
		/// Returns standalone error verbalizer.
		/// </summary>
		protected IEnumerable<CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
		{
			ErrorReport verbalizer = ErrorReport.GetVerbalizer();
			verbalizer.Initialize(this);
			yield return CustomChildVerbalizer.VerbalizeInstance(verbalizer, true);
		}
示例#7
0
		bool IVerbalize.GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
		{
			return GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
		}
示例#8
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(snippets.GetSnippet(myHeaderSnippet));
				IList<ObjectType> objectTypes = myObjectTypeList;
				int objectCount = objectTypes.Count;
				if (objectCount != 0)
				{
					ObjectTypeVerbalizationWrapper wrapper = new ObjectTypeVerbalizationWrapper(ReportVerbalizationSnippetType.ObjectTypeListObjectTypeValueLink, null);
					IVerbalize verbalize = wrapper;
					for (int i = 0; i < objectCount; ++i)
					{
						wrapper.VerbalizationObject = objectTypes[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				writer.Write(snippets.GetSnippet(myFooterSnippet));
				return false; // No children to verbalize
			}
示例#9
0
			/// <summary>
			/// Provides an opportunity for a parent object to filter the
			/// verbalization of aggregated child verbalization implementations
			/// </summary>
			/// <param name="child">A direct or indirect child object.</param>
			/// <param name="sign">The preferred verbalization sign</param>
			/// <returns>
			/// Return the provided childVerbalizer to verbalize normally, null to block verbalization, or an
			/// alternate IVerbalize. The value is returned with a boolean option. The element will be disposed with
			/// this is true.
			/// </returns>
			protected CustomChildVerbalizer FilterChildVerbalizer(object child, VerbalizationSign sign)
			{
				if (child is IConstraint)
				{
					return CustomChildVerbalizer.Block;
				}
				return CustomChildVerbalizer.VerbalizeInstance(child as IVerbalize);
			}
示例#10
0
			/// <summary>
			/// Implements IVerbalizeCustomChildren.GetCustomChildVerbalizations
			/// </summary>
			protected IEnumerable<CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
			{
				yield return CustomChildVerbalizer.VerbalizeInstance(new VerbalizationReportTableOfContentsWrapper(myReportContent, mySnippets));
				yield return CustomChildVerbalizer.VerbalizeInstance(new ModelContextWrapper(myModel, ReportVerbalizationSnippetType.ContextModelDescriptionOpen, ReportVerbalizationSnippetType.ContextModelDescriptionClose));
				yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSnippetVerbalizer(ReportVerbalizationSnippetType.FactTypeConstraintValidationHeader));
				int factTypeCount = myFactTypeList.Count;
				for (int i = 0; i < factTypeCount; ++i)
				{
					yield return CustomChildVerbalizer.VerbalizeInstance(new FactTypePageHeaderSummary(myFactTypeList[i], filter));
					yield return CustomChildVerbalizer.VerbalizeInstance(new FactTypePageObjectTypeSection(ReportVerbalizationSnippetType.ObjectTypeListObjectTypeValueLink, myFactTypeList[i]));
					yield return CustomChildVerbalizer.VerbalizeInstance(new ConstraintValidationSection(myReportContent, GetConstraintsFromFactType(myFactTypeList[i], myReportContent)));
				}
				yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSnippetVerbalizer(ReportVerbalizationSnippetType.FactTypeConstraintValidationSignature));
			}
示例#11
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				IVerbalizationSets<ReportVerbalizationSnippetType> mySnippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericSubTypeListOpen));

				ObjectTypeVerbalizationWrapper wrapper = null;
				IVerbalize verbalize = null;
				bool hasContent = false;
				foreach (ObjectType objectType in myObjectType.SubtypeCollection)
				{
					if (!hasContent)
					{
						wrapper = new ObjectTypeVerbalizationWrapper(ReportVerbalizationSnippetType.ObjectTypeRelationshipValueLink, objectType);
						verbalize = wrapper;
						hasContent = true;
					}
					else
					{
						wrapper.VerbalizationObject = objectType;
					}
					IVerbalize instance = new ObjectTypeVerbalizationWrapper(ReportVerbalizationSnippetType.ObjectTypeRelationshipValueLink, objectType);
					verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
				}
				if (!hasContent)
				{
					writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.EmptyContentListItemSnippet));
				}

				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericSubTypeListClose));
				return false; // No children to verbalize
			}
示例#12
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(snippets.GetSnippet(mySnippet));
				return true;
			}
示例#13
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				ReportVerbalizationSnippetType snippetFormat = 0;
				if (0 != (myReportContent & VerbalizationReportContent.ObjectTypes) &&
					0 != (myReportContent & VerbalizationReportContent.ValidationReport))
				{
					snippetFormat = ReportVerbalizationSnippetType.ReportDocumentContentsReplacementAll;
				}
				else if (0 == (myReportContent & VerbalizationReportContent.ObjectTypes) &&
					 0 != (myReportContent & VerbalizationReportContent.ValidationReport))
				{
					snippetFormat = ReportVerbalizationSnippetType.ReportDocumentContentsReplacementValidation;
				}
				else if (0 != (myReportContent & VerbalizationReportContent.ObjectTypes) &&
					0 == (myReportContent & VerbalizationReportContent.ValidationReport))
				{
					snippetFormat = ReportVerbalizationSnippetType.ReportDocumentContentsReplacementObject;
				}

				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				writer.Write(string.Format(mySnippets.GetSnippet(ReportVerbalizationSnippetType.ReportDocumentContents), mySnippets.GetSnippet(snippetFormat)));
				return true;
			}
示例#14
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericListItemOpen));
				writer.Write(string.Format(snippets.GetSnippet(ReportVerbalizationSnippetType.FactTypeRelationshipLinkOpen), AsFileName(myVerbalizationObject.Name)));
				((IVerbalize)myVerbalizationObject).GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.FactTypeRelationshipLinkClose));
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericListItemClose));
				return false; // No children to verbalize
			}
示例#15
0
			/// <summary>
			/// Implements IVerbalizeCustomChildren.GetCustomChildVerbalizations
			/// </summary>
			protected IEnumerable<CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
			{
				yield return CustomChildVerbalizer.VerbalizeInstance(new FactTypePageHeaderSummary(myFactType, filter));
				yield return CustomChildVerbalizer.VerbalizeInstance(new FactTypePageObjectTypeSection(ReportVerbalizationSnippetType.ObjectTypeRelationshipValueLink, myFactType));
				yield return CustomChildVerbalizer.VerbalizeInstance(new GenericConstraintSection(myReportContent, GetConstraintsFromFactType(myFactType, myReportContent)));
				if (myFactType.Objectification != null)
				{
					yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSuperTypeSection(myFactType.Objectification.NestingType));
					yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSubTypeSection(myFactType.Objectification.NestingType));
				}
			}
示例#16
0
 /// <summary>
 /// Implements <see cref="IVerbalize.GetVerbalization"/>
 /// </summary>
 protected bool GetVerbalization(TextWriter writer, IDictionary <Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
 {
     ORMCore.UniquenessConstraint constraint = UniquenessIsForUniquenessConstraint.GetUniquenessConstraint(this.Uniqueness);
     if (constraint != null)
     {
         verbalizationContext.DeferVerbalization(constraint, DeferVerbalizationOptions.None, null);
     }
     return(false);
 }
示例#17
0
        /// <summary>
        /// Implements <see cref="IVerbalize.GetVerbalization"/>
        /// </summary>
        protected bool GetVerbalization(TextWriter writer, IDictionary <Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
        {
            // We are redirected to this point by the associated Column element
            Column column     = this.Column;
            bool   firstWrite = true;

            foreach (ConceptTypeChild child in ColumnHasConceptTypeChild.GetConceptTypeChildPath(this.Column))
            {
                foreach (FactType factType in ConceptTypeChildHasPathFactType.GetPathFactTypeCollection(child))
                {
                    if (firstWrite)
                    {
                        firstWrite = false;
                    }
                    else
                    {
                        writer.WriteLine();
                    }
                    verbalizationContext.DeferVerbalization(factType, DeferVerbalizationOptions.MultipleVerbalizations, null);
                }
            }
            return(false);
        }
示例#18
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				IVerbalizationSets<ReportVerbalizationSnippetType> mySnippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);

				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericConstraintListOpen));
				ConstraintVerbalizationWrapper wrapper = new ConstraintVerbalizationWrapper(ReportVerbalizationSnippetType.FactTypeConstraintValidationListItemOpen, ReportVerbalizationSnippetType.FactTypeConstraintValidationListItemClose, null);
				IVerbalize verbalize = wrapper;

				// Internal Uniqueness Constraints
				if ((myReportContent & VerbalizationReportContent.InternalUniquenessConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.InternalUniqueness];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// External Uniqueness Constraints
				if ((myReportContent & VerbalizationReportContent.ExternalUniquenessConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.ExternalUniqueness];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Frequency Constraints
				if ((myReportContent & VerbalizationReportContent.FrequencyConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.Frequency];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Simple Mandatory Constraints
				if ((myReportContent & VerbalizationReportContent.SimpleMandatoryConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.SimpleMandatory];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Disjunctive Mandatory Constraints
				if ((myReportContent & VerbalizationReportContent.DisjunctiveMandatoryConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.DisjunctiveMandatory];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Ring Constraints
				if ((myReportContent & VerbalizationReportContent.RingConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.Ring];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Equality Constraints
				if ((myReportContent & VerbalizationReportContent.EqualityConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.Equality];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Exclusion Constraints
				if ((myReportContent & VerbalizationReportContent.ExclusionConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.Exclusion];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				// Subset Constraints
				if ((myReportContent & VerbalizationReportContent.SubsetConstraints) != 0)
				{
					IList<IConstraint> constraintList = myConstraintList[ConstraintType.Subset];
					int constraintCount = constraintList.Count;
					for (int i = 0; i < constraintCount; ++i)
					{
						wrapper.VerbalizationObject = constraintList[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}

				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericConstraintListClose));
				return false; // No children to verbalize
			}
示例#19
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericListItemOpen));
				string objectTypeName = myVerbalizationObject.Name;
				writer.Write(string.Format(writer.FormatProvider, snippets.GetSnippet(myObjectTypeSnippet), objectTypeName, AsFileName(objectTypeName)));
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericListItemClose));
				return false; // No children to verbalize
			}
示例#20
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				object verbalizationObject = this.myVerbalizationObject;
				if (verbalizationObject == null || verbalizationContext.AlreadyVerbalized(verbalizationObject))
				{
					return false;
				}
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(snippets.GetSnippet(myOpeningSnippet), TypeDescriptor.GetComponentName(verbalizationObject), TypeDescriptor.GetClassName(verbalizationObject));
				verbalizationContext.DeferVerbalization(verbalizationObject, DeferVerbalizationOptions.AlwaysWriteLine, null);
				// This must be called before additional calls to the writer or an increased indentation will not decrease before
				// the close element is written.
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				writer.Write(snippets.GetSnippet(myClosingSnippet));
				return true;
			}
示例#21
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				ORMModel model = myModel;
				if (model != null)
				{
					verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
					IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
					writer.Write(string.Format(writer.FormatProvider, snippets.GetSnippet(myOpenSnippet), model.Name));
					verbalizationContext.DeferVerbalization(model, DeferVerbalizationOptions.AlwaysWriteLine, null);
					verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
					writer.Write(snippets.GetSnippet(myCloseSnippet));
				}
				return false; // No children to verbalize
			}
示例#22
0
			/// <summary>
			/// Implements IVerbalizeCustomChildren.GetCustomChildVerbalizations
			/// </summary>
			protected IEnumerable<CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
			{
				yield return CustomChildVerbalizer.VerbalizeInstance(new ObjectTypePageHeaderSummary(myObjectType, filter));
				yield return CustomChildVerbalizer.VerbalizeInstance(new ObjectTypePageFactTypeSection(myObjectType));
				yield return CustomChildVerbalizer.VerbalizeInstance(new ObjectTypePageRelationshipSection(myObjectType));
				yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSuperTypeSection(myObjectType));
				yield return CustomChildVerbalizer.VerbalizeInstance(new GenericSubTypeSection(myObjectType));
			}
示例#23
0
		/// <summary>
		/// Implements <see cref="IVerbalize.GetVerbalization"/>
		/// </summary>
		protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
		{
			ORMCore.UniquenessConstraint constraint = UniquenessIsForUniquenessConstraint.GetUniquenessConstraint(this.Uniqueness);
			if (constraint != null)
			{
				verbalizationContext.DeferVerbalization(constraint, DeferVerbalizationOptions.None, null);
			}
			return false;
		}
示例#24
0
			CustomChildVerbalizer IVerbalizeFilterChildren.FilterChildVerbalizer(object child, VerbalizationSign sign)
			{
				return FilterChildVerbalizer(child, sign);
			}
示例#25
0
文件: Role.cs 项目: cjheath/NORMA
		IEnumerable<CustomChildVerbalizer> IVerbalizeCustomChildren.GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
		{
			return GetCustomChildVerbalizations(filter, sign);
		}
示例#26
0
			/// <summary>
			/// Provides an opportunity for a parent object to filter the
			/// verbalization of aggregated child verbalization implementations
			/// </summary>
			/// <param name="child">A direct or indirect child object.</param>
			/// <param name="sign">The preferred verbalization sign</param>
			/// <returns>
			/// Return the provided childVerbalizer to verbalize normally, null to block verbalization, or an
			/// alternate IVerbalize. The value is returned with a boolean option. The element will be disposed with
			/// this is true.
			/// </returns>
			protected CustomChildVerbalizer FilterChildVerbalizer(object child, VerbalizationSign sign)
			{
				return CustomChildVerbalizer.VerbalizeInstance(child as IVerbalize);
			}
示例#27
0
				IEnumerable<CustomChildVerbalizer> IVerbalizeExtensionChildren.GetExtensionChildVerbalizations(object parentElement, IVerbalizeFilterChildren filter, VerbalizationSign sign)
				{
					// Get the instance data local and release the cached iterator
					IORMExtendableElement propertyOwner = parentElement as IORMExtendableElement;
					if (propertyOwner != null)
					{
						PropertyDefinitionFilter propertyFilter = myPropertyFilter;
						LinkedElementCollection<ModelElement> extensions = null;
						foreach (CustomPropertyDefinition customPropertyDefinition in propertyOwner.Store.ElementDirectory.FindElements<CustomPropertyDefinition>())
						{
							object defaultValue;
							if (!customPropertyDefinition.VerbalizeDefaultValue ||
								null == (defaultValue = customPropertyDefinition.DefaultValue) ||
								(propertyFilter != null && !propertyFilter(propertyOwner, customPropertyDefinition)))
							{
								continue;
							}
							bool haveMatchingProperty = false;
							foreach (ModelElement extensionElement in extensions ?? (extensions = propertyOwner.ExtensionCollection))
							{
								CustomProperty customProperty = extensionElement as CustomProperty;
								if (customProperty != null && customProperty.CustomPropertyDefinition == customPropertyDefinition)
								{
									haveMatchingProperty = true;
									break;
								}
							}
							if (!haveMatchingProperty)
							{
								DefaultPropertyValueVerbalizer verbalizer = DefaultPropertyValueVerbalizer.GetVerbalizer();
								verbalizer.Attach(customPropertyDefinition);
								yield return CustomChildVerbalizer.VerbalizeInstance(verbalizer, true);
							}
						}
					}
				}
示例#28
0
			/// <summary>
			/// Implements IVerbalizeCustomChildren.GetCustomChildVerbalizations
			/// </summary>
			/// <param name="filter">A <see cref="IVerbalizeFilterChildren"/> instance. Can be <see langword="null"/>.
			/// If the <see cref="IVerbalizeFilterChildren.FilterChildVerbalizer">FilterChildVerbalizer</see> method returns
			/// <see cref="CustomChildVerbalizer.Block"/> for any constituent components used to create a <see cref="CustomChildVerbalizer"/>,
			/// then that custom child should not be created</param>
			/// <param name="sign">The preferred verbalization sign</param>
			/// <returns>
			/// IEnumerable of CustomChildVerbalizer structures
			/// </returns>
			protected IEnumerable<CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, VerbalizationSign sign)
			{
				yield return CustomChildVerbalizer.VerbalizeInstance(new VerbalizationReportTableOfContentsWrapper(myReportContent, mySnippets));
				yield return CustomChildVerbalizer.VerbalizeInstance(new ModelContextWrapper(myModel, ReportVerbalizationSnippetType.ContextModelDescriptionOpen, ReportVerbalizationSnippetType.ContextModelDescriptionClose));
				yield return CustomChildVerbalizer.VerbalizeInstance(new ObjectTypeListWrapper(myObjectTypeList, myHeaderSnippet, myFooterSnippet));
			}
示例#29
0
                IEnumerable <CustomChildVerbalizer> IVerbalizeExtensionChildren.GetExtensionChildVerbalizations(object parentElement, IVerbalizeFilterChildren filter, VerbalizationSign sign)
                {
                    // Get the instance data local and release the cached iterator
                    IORMExtendableElement propertyOwner = parentElement as IORMExtendableElement;

                    if (propertyOwner != null)
                    {
                        PropertyDefinitionFilter propertyFilter           = myPropertyFilter;
                        LinkedElementCollection <ModelElement> extensions = null;
                        foreach (CustomPropertyDefinition customPropertyDefinition in propertyOwner.Store.ElementDirectory.FindElements <CustomPropertyDefinition>())
                        {
                            object defaultValue;
                            string defaultValueString;
                            if (!customPropertyDefinition.VerbalizeDefaultValue ||
                                null == (defaultValue = customPropertyDefinition.DefaultValue) ||
                                (null != (defaultValueString = defaultValue as string) && defaultValueString.Length == 0) ||
                                (propertyFilter != null && !propertyFilter(propertyOwner, customPropertyDefinition)))
                            {
                                continue;
                            }
                            bool haveMatchingProperty = false;
                            foreach (ModelElement extensionElement in extensions ?? (extensions = propertyOwner.ExtensionCollection))
                            {
                                CustomProperty customProperty = extensionElement as CustomProperty;
                                if (customProperty != null && customProperty.CustomPropertyDefinition == customPropertyDefinition)
                                {
                                    haveMatchingProperty = true;
                                    break;
                                }
                            }
                            if (!haveMatchingProperty)
                            {
                                DefaultPropertyValueVerbalizer verbalizer = DefaultPropertyValueVerbalizer.GetVerbalizer();
                                verbalizer.Attach(customPropertyDefinition);
                                yield return(CustomChildVerbalizer.VerbalizeInstance(verbalizer, true));
                            }
                        }
                    }
                }
示例#30
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> snippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				writer.Write(string.Format(writer.FormatProvider, snippets.GetSnippet(ReportVerbalizationSnippetType.ObjectTypePageHeader), (myVerbalizationObject as ObjectType).Name));
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericSummaryOpen));
				verbalizationContext.DeferVerbalization(myVerbalizationObject, DeferVerbalizationOptions.AlwaysWriteLine, myFilterChildren);
				// This must be called before additional calls to the writer or an increased indentation will not decrease before
				// the close element is written.
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				writer.Write(snippets.GetSnippet(ReportVerbalizationSnippetType.GenericSummaryClose));
				return true;
			}
示例#31
0
 IEnumerable <CustomChildVerbalizer> IVerbalizeCustomChildren.GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, IDictionary <string, object> verbalizationOptions, VerbalizationSign sign)
 {
     return(GetCustomChildVerbalizations(filter, verbalizationOptions, sign));
 }
示例#32
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				IVerbalizationSets<ReportVerbalizationSnippetType> mySnippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				IList<FactType> uniqueFactTypes = UniqueFactTypeList;
				int factTypeCount = uniqueFactTypes.Count;

				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.ObjectTypePageFactTypeListOpen));
				if (factTypeCount != 0)
				{
					FactTypeVerbalizationWrapper wrapper = new FactTypeVerbalizationWrapper(null);
					IVerbalize verbalize = wrapper;
					for (int i = 0; i < factTypeCount; ++i)
					{
						wrapper.VerbalizationObject = uniqueFactTypes[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}
				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.ObjectTypePageFactTypeListClose));
				return false; // No children to verbalize
			}
示例#33
0
        /// <summary>
        /// Implements <see cref="IVerbalize.GetVerbalization"/>
        /// </summary>
        protected bool GetVerbalization(TextWriter writer, IDictionary <Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
        {
            // We are redirected to this point by the associated Table element
            ConceptType conceptType = this.ConceptType;
            ObjectType  objectType;

            if (null != (objectType = ConceptTypeIsForObjectType.GetObjectType(conceptType)))
            {
                verbalizationContext.DeferVerbalization(objectType, DeferVerbalizationOptions.None, null);
                foreach (ConceptType alsoForConceptType in TableIsAlsoForConceptType.GetConceptType(this.Table))
                {
                    if (null != (objectType = ConceptTypeIsForObjectType.GetObjectType(alsoForConceptType)))
                    {
                        writer.WriteLine();
                        verbalizationContext.DeferVerbalization(objectType, DeferVerbalizationOptions.None, null);
                    }
                }
            }
            return(false);
        }
示例#34
0
			/// <summary>
			/// Implements <see cref="IVerbalize.GetVerbalization"/>
			/// </summary>
			protected bool GetVerbalization(TextWriter writer, IDictionary<Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
			{
				IVerbalizationSets<ReportVerbalizationSnippetType> mySnippets = (IVerbalizationSets<ReportVerbalizationSnippetType>)snippetsDictionary[typeof(ReportVerbalizationSnippetType)];
				verbalizationContext.BeginVerbalization(VerbalizationContent.Normal);
				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericRelationshipsListOpen));

				IList<ObjectType> relatedObjects = RelatedObjectList;
				int relatedObjectCount = relatedObjects.Count;
				if (relatedObjectCount != 0)
				{
					ObjectTypeVerbalizationWrapper wrapper = new ObjectTypeVerbalizationWrapper(ReportVerbalizationSnippetType.ObjectTypeValueLink, null);
					IVerbalize verbalize = wrapper;
					for (int i = 0; i < relatedObjectCount; ++i)
					{
						wrapper.VerbalizationObject = relatedObjects[i];
						verbalize.GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign);
					}
				}

				writer.Write(mySnippets.GetSnippet(ReportVerbalizationSnippetType.GenericRelationshipsListClose));
				return false; // No children to verbalize
			}
示例#35
0
 bool IVerbalize.GetVerbalization(TextWriter writer, IDictionary <Type, IVerbalizationSets> snippetsDictionary, IVerbalizationContext verbalizationContext, VerbalizationSign sign)
 {
     return(GetVerbalization(writer, snippetsDictionary, verbalizationContext, sign));
 }
示例#36
0
 /// <summary>
 /// Implements <see cref="IVerbalizeCustomChildren.GetCustomChildVerbalizations"/>.
 /// Explicitly verbalizes extension elements
 /// </summary>
 protected IEnumerable <CustomChildVerbalizer> GetCustomChildVerbalizations(IVerbalizeFilterChildren filter, IDictionary <string, object> verbalizationOptions, VerbalizationSign sign)
 {
     foreach (ModelElement extensionElement in ExtensionCollection)
     {
         IVerbalize verbalizeExtension = extensionElement as IVerbalize;
         if (verbalizeExtension != null)
         {
             yield return(CustomChildVerbalizer.VerbalizeInstance(verbalizeExtension));
         }
     }
 }