Beispiel #1
0
        public void GenerateDiagram(MetaModel dm, DiagramClass diagram)
        {
            string baseClass = "DslEditorDiagrams::Diagram";

            if (diagram is DependencyDiagram)
            {
                baseClass = "DslEditorDiagrams::GraphicalDependenciesDiagram";
            }


        #line default
        #line hidden

        #line 30 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\nnamespace ");


        #line default
        #line hidden

        #line 32 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));


        #line default
        #line hidden

        #line 32 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\n{\r\n\t/// <summary>\r\n    /// ");


        #line default
        #line hidden

        #line 35 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));


        #line default
        #line hidden

        #line 35 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(" class representing a Diagram.\r\n    /// </summary>\r\n\t[DslModeling::DomainObjectId" +
                       "(\"");


        #line default
        #line hidden

        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));


        #line default
        #line hidden

        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\")]\r\n\tpublic partial class ");


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(" : ");


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\t\r\n\t\t/// <summary>\r\n\t\t/// VModellv" +
                       "ariante domain class Id.\r\n\t\t/// </summary>\r\n\t\tpublic static readonly new global:" +
                       ":System.Guid DomainClassId = new System.Guid(\"");


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@""");
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""store"">Store where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public "        );


        #line default
        #line hidden

        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));


        #line default
        #line hidden

        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"(DslModeling::Store store, params DslModeling::PropertyAssignment[] propertyAssignments)
			: this(store != null ? store.DefaultPartitionForClass(DomainClassId) : null, propertyAssignments)
		{
		}
		
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""partition"">Partition where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public "        );


        #line default
        #line hidden

        #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));


        #line default
        #line hidden

        #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"(DslModeling::Partition partition, params DslModeling::PropertyAssignment[] propertyAssignments)
			: base(partition, propertyAssignments)
		{
		}
		#endregion
		
	    /// <summary>
        /// Gets the unique name of this diagram.
        /// </summary>
        public override string UniqueName
        {
            get
			{
				return """                );


        #line default
        #line hidden

        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));


        #line default
        #line hidden

        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));


        #line default
        #line hidden

        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\";\r\n\t\t\t}\r\n        }\r\n\t\t\r\n        /// <summary>\r\n        /// Initialize.\r\n        " +
                       "/// </summary>\r\n        public override void Initialize()\r\n        {\r\n");


        #line default
        #line hidden

        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

            if (diagram is DesignerDiagramClass)
            {
                foreach (DiagramClass d in (diagram as DesignerDiagramClass).IncludedDiagramClasses)
                {
        #line default
        #line hidden

        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write("\t\t\tAddIncludedDiagram(new ");


        #line default
        #line hidden

        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));


        #line default
        #line hidden

        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write(".");


        #line default
        #line hidden

        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));


        #line default
        #line hidden

        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write("(this.Store));\r\n");


        #line default
        #line hidden

        #line 90 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                }
            }



        #line default
        #line hidden

        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("        }\r\n");


        #line default
        #line hidden

        #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"


            if (CodeGenerationUtilities.NeedsLinkRules(dm))
            {
        #line default
        #line hidden

        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(@"
        /// <summary>
        /// Gets the relationship shapes factory helper. Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RSShapesFactoryHelper GetRSShapesFactoryHelper()
        {
            return ");


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("LinkForShapesAdded.");


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");


        #line default
        #line hidden

        #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            }
            if (CodeGenerationUtilities.NeedsMappingLinkRules(dm))
            {
        #line default
        #line hidden

        #line 114 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(@"
        /// <summary>
        /// Gets the mapping relationship shapes factory helper.  Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes.RSShapesFactoryHelper GetMappingRSShapesFactoryHelper()
        {
            return ");


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("MappingLinkForShapesAdded.");


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");


        #line default
        #line hidden

        #line 124 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            }


        #line default
        #line hidden

        #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"		
		#region Methods		
		/// <summary>
        /// Adds a proto element to the current element.
        /// </summary>
        /// <param name=""protoElement"">Proto element representation of the element that is to be added.</param>
        /// <param name=""groupMerger"">
        /// Group merger class used to track id mapping, merge errors/warnings and 
        /// postprocess merging by rebuilding reference relationships.
        /// </param>
        /// <param name=""isRoot"">Root element?</param>
        public override void ModelMerge(DslEditorModeling::ModelProtoElement protoElement, DslEditorModeling::ModelProtoGroupMerger groupMerger, bool isRoot)
		{
");


        #line default
        #line hidden

        #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

            if (!diagram.IsCustom)
            {
        #line default
        #line hidden

        #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("\t\t\t// TODO\t\t\t\r\n");


        #line default
        #line hidden

        #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            }


        #line default
        #line hidden

        #line 147 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\t\t}\r\n\t\t#endregion\r\n\t}\r\n}\r\n");


        #line default
        #line hidden

        #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
        }
        public override string TransformText()
        {
            this.GenerationEnvironment = null;
            this.Write(" \r\n");
            this.Write("using DslModeling = global::Microsoft.VisualStudio.Modeling;\r\nusing DslEditorDiag" +
                       "rams = global::Tum.PDE.ToolFramework.Modeling.Diagrams;\r\n\r\n");

            #line 12 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            List <AttributedDomainElement> ruleOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnElementsDelete = new List <AttributedDomainElement>();

            List <AttributedDomainElement> ruleMappingOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnElementsDelete = new List <AttributedDomainElement>();
            foreach (DiagramClass diagram in this.MetaModel.AllDiagramClasses)
            {
                foreach (PresentationElementClass element in diagram.PresentationElements)
                {
                    if (element is RelationshipShapeClass)
                    {
                        RelationshipShapeClass shape = element as RelationshipShapeClass;
                        DomainRelationship     con   = shape.ReferenceRelationship;

                        if (con == null)
                        {
                            continue;
                        }

                        ruleOnElementsAdd.Add(con);
                        ruleOnLinksChange.Add(con);
                        ruleOnElementsDelete.Add(con);
                    }
                    else if (element is MappingRelationshipShapeClass)
                    {
                        MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
                        DomainClass domainClass             = shape.DomainClass;

                        ReferenceRelationship source = shape.Source;
                        ReferenceRelationship target = shape.Target;

                        if (domainClass != null && source != null && target != null)
                        {
                            if (source.Target.RolePlayer is DomainClass &&
                                target.Target.RolePlayer is DomainClass)
                            {
                                ruleMappingOnElementsAdd.Add(domainClass);
                                ruleMappingOnElementsAdd.Add(source);
                                ruleMappingOnElementsAdd.Add(target);

                                ruleMappingOnLinksChange.Add(source);
                                ruleMappingOnLinksChange.Add(target);

                                ruleMappingOnElementsDelete.Add(domainClass);
                                ruleMappingOnElementsDelete.Add(source);
                                ruleMappingOnElementsDelete.Add(target);
                            }
                        }
                    }
                }
            }

            MetaModel dm = this.MetaModel;


            #line default
            #line hidden
            this.Write("namespace ");

            #line 67 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n");

            #line 69 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            if (CodeGenerationUtilities.NeedsLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we need" +
                           " to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape cl" +
                           "ass.\r\n    /// </summary>\r\n");

            #line 77 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 81 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 82 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForRSShapes\r\n    {\r\n\t\t///" +
                           " <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic ");

            #line 90 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded() \r\n\t\t\t: base(");

            #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 98 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RS" +
                           "ShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }			
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 127 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSShape" +
                           "s\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tp" +
                           "ublic ");

            #line 135 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged() \r\n\t\t\t: base(");

            #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSSha" +
                           "pes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\t\t\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t///" +
                           " </summary>\r\n\t\t\tpublic ");

            #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded.");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted.");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes\r\n  " +
                           "  {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic" +
                           " ");

            #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 197 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes.Shap" +
                           "eDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 209 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n\t\r\n");

            #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }
            if (CodeGenerationUtilities.NeedsMappingLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t\r\n\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we n" +
                           "eed to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape" +
                           " class.\r\n    /// </summary>\r\n");

            #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes" +
                           "\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpu" +
                           "blic ");

            #line 239 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded() \r\n\t\t\t: base(");

            #line 240 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForMappingRSSh" +
                           "apes.RSShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 249 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 259 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 275 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleFor" +
                           "MappingRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// <" +
                           "/summary>\r\n\t\tpublic ");

            #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged() \r\n\t\t\t: base(");

            #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForMappi" +
                           "ngRSShapes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t/// <" +
                           "/summary>\r\n\t\t\tpublic ");

            #line 313 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded.");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted.");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 325 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 329 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 330 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 333 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForMappi" +
                           "ngRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summ" +
                           "ary>\r\n\t\tpublic ");

            #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 346 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForMappingRSShap" +
                           "es.ShapeDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 348 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 353 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 358 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n");

            #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }



            #line default
            #line hidden
            this.Write("}\r\n\r\n");
            return(this.GenerationEnvironment.ToString());
        }