public override string TransformText() { this.GenerationEnvironment = null; this.Write(" \r\n"); #line 9 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" string dslName = this.MetaModel.Name; string directiveName = dslName; #line default #line hidden this.Write(@"//------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ "); #line 21 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" string domainModelFullName = this.MetaModel.GetFullName(false) + "DomainModel"; DomainClass domainModel = null; foreach (DomainClass domainClass in this.MetaModel.AllClasses) { if (domainClass.IsDomainModel) { domainModel = domainClass; break; } } if (domainModel == null) { return(""); } string rootElementName = domainModel.Name; string rootElementType = domainModel.GetFullName(true); #line default #line hidden this.Write(@" #region Using directives using DslModeling = global::Microsoft.VisualStudio.Modeling; using DslValidation = global::Microsoft.VisualStudio.Modeling.Validation; using VSTextTemplating = global::Microsoft.VisualStudio.TextTemplating; #endregion namespace "); #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden this.Write("\r\n{\r\n/// <summary>\r\n/// Double-derived template directive processor that provides" + " "); #line 50 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write(" files\r\n/// The implementation is done in "); #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorBase. This class\r\n/// exist so users can customize behavior eas" + "ily.\r\n/// </summary>\r\npublic sealed partial class "); #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessor : "); #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorBase\r\n{\r\n\t/// <summary>\r\n\t/// Constructor\r\n\t/// </summary>\r\n\tpu" + "blic "); #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessor()\r\n\t\t: base()\r\n\t{\r\n\t}\r\n}\r\n\r\n/// <summary>\r\n/// Base implementa" + "tion for template directive processor that provides "); #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write(" files\r\n/// </summary>\r\npublic class "); #line 68 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorBase : VSTextTemplating::RequiresProvidesDirectiveProcessor\r\n{\r" + "\n\t/// <summary>\r\n\t/// The friendly name of this processor.\r\n\t/// </summary>\r\n\tpu" + "blic const string "); #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorName = \""); #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write(@"DirectiveProcessor""; /// <summary> /// The name for the requires parameter that provides the filename of the model /// </summary> private const string requiresFileParameter = ""FileName""; /// <summary> /// The name for the requires parameter that provides the validation categories to run. /// The value for this parameter defaults to String.Empty /// </summary> private const string requiresValidationParameter = ""Validation""; /// <summary> /// The name for the provides parameter whose value decides the name of the property /// generated by this DirectiveProcessor. The property returns the root element of /// the model in the given file. /// </summary> private const string providesModelParameter = """ ); #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rootElementName)); #line default #line hidden this.Write(@"""; /// <summary> /// The default value of the provides parameter above. It defaults to the name of /// the parameter itself. /// </summary> private const string defaultProvidesModelParameter = providesModelParameter; /// <summary> /// The directive name that is supported by this direcive processor. This defaults /// to the name of the model. /// </summary> private const string supportedDirectiveName = """ ); #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("\";\r\n\t\r\n\t/// <summary>\r\n\t/// Flag to ensure that some code is only generated once " + "regardless of how many times the processor is used.\r\n\t/// </summary>\r\n\tprivate b" + "ool oneTimeCodeGenerated;\r\n\t\r\n\t/// <summary>\r\n\t/// Constructor\r\n\t/// </summary>\r" + "\n\tpublic "); #line 113 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorBase()\r\n\t\t: base()\r\n\t{\r\n\t}\r\n\r\n\t/// <summary>\r\n\t/// The friendly" + " name of this processor.\r\n\t/// </summary>\r\n\tprotected override string FriendlyNa" + "me\r\n\t{\r\n\t\tget\r\n\t\t{\r\n\t\t\treturn "); #line 125 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(directiveName)); #line default #line hidden this.Write("DirectiveProcessorName;\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>\r\n\t/// Check if the directive n" + "ame is supported by this directive processor\r\n\t/// </summary>\r\n\t/// <param name=" + "\"directiveName\"></param>\r\n\t/// <returns></returns>\r\n\tpublic override bool IsDire" + "ctiveSupported(string directiveName)\r\n\t{\r\n\t\treturn (global::System.StringCompare" + "r.OrdinalIgnoreCase.Compare(directiveName, supportedDirectiveName) == 0);\r\n\t}\r\n\r" + "\n\t/// <summary>\r\n\t/// Override StartProcessingRun to reset the helpers flag.\r\n\t/" + "// </summary>\r\n\t/// <param name=\"languageProvider\"></param>\r\n\t/// <param name=\"t" + "emplateContents\"></param>\r\n\t/// <param name=\"errors\"></param>\r\n\tpublic override " + "void StartProcessingRun(global::System.CodeDom.Compiler.CodeDomProvider language" + "Provider, string templateContents, global::System.CodeDom.Compiler.CompilerError" + "Collection errors)\r\n\t{\r\n\t\tthis.oneTimeCodeGenerated = false;\r\n\t\tbase.StartProces" + "singRun(languageProvider, templateContents, errors);\r\n\t}\r\n\r\n\r\n\t/// <summary>\r\n\t/" + "// Override to initialize requires dictionary\r\n\t/// </summary>\r\n\t/// <param name" + "=\"directiveName\"></param>\r\n\t/// <param name=\"requiresDictionary\"></param>\r\n\tprot" + "ected override void InitializeRequiresDictionary(string directiveName, global::S" + "ystem.Collections.Generic.IDictionary<string, string> requiresDictionary)\r\n\t{\r\n\t" + "\tif ((global::System.StringComparer.OrdinalIgnoreCase.Compare(directiveName, sup" + "portedDirectiveName) == 0))\r\n\t\t{\r\n\t\t\trequiresDictionary[requiresFileParameter] =" + " null;\r\n\t\t\trequiresDictionary[requiresValidationParameter] = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\t//" + "/ <summary>\r\n\t/// Override to initialize provides dictinoary\r\n\t/// </summary>\r\n\t" + "/// <param name=\"directiveName\"></param>\r\n\t/// <param name=\"providesDictionary\">" + "</param>\r\n\tprotected override void InitializeProvidesDictionary(string directive" + "Name, global::System.Collections.Generic.IDictionary<string, string> providesDic" + "tionary)\r\n\t{\r\n\t\tif ((global::System.StringComparer.OrdinalIgnoreCase.Compare(dir" + "ectiveName, supportedDirectiveName) == 0))\r\n\t\t{\r\n\t\t\tprovidesDictionary[providesM" + "odelParameter] = defaultProvidesModelParameter;\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>\r\n\t///" + " Generate the code to access the model. Use to CodeDomProvider so we are languag" + "e-agnostic\r\n\t/// </summary>\r\n\t/// <param name=\"directiveName\"></param>\r\n\t/// <pa" + "ram name=\"codeBuffer\"></param>\r\n\t/// <param name=\"languageProvider\"></param>\r\n\t/" + "// <param name=\"requiresArguments\"></param>\r\n\t/// <param name=\"providesArguments" + "\"></param>\r\n\t[global::System.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft" + ".Globalization\", \"CA1308:NormalizeStringsToUppercase\", Justification = \"Generate" + "d code is not meant for normalization purpose.\")]\r\n\t[global::System.Diagnostics." + "CodeAnalysis.SuppressMessage(\"Microsoft.Maintainability\", \"CA1506:AvoidExcessive" + "ClassCoupling\", Justification = \"Generated code.\")]\r\n\tprotected override void Ge" + "nerateTransformCode(string directiveName, global::System.Text.StringBuilder code" + "Buffer, global::System.CodeDom.Compiler.CodeDomProvider languageProvider, global" + "::System.Collections.Generic.IDictionary<string, string> requiresArguments, glob" + "al::System.Collections.Generic.IDictionary<string, string> providesArguments)\r\n\t" + "{\r\n\t\tif ((global::System.StringComparer.OrdinalIgnoreCase.Compare(directiveName," + " supportedDirectiveName) == 0))\r\n\t\t{\r\n\t\t\tif (languageProvider != null)\r\n\t\t\t{\r\n\t\t" + "\t\t// Create a field to store the model once it is loaded\r\n\t\t\t\tglobal::System.Cod" + "eDom.CodeMemberField rootElement = new global::System.CodeDom.CodeMemberField();" + "\r\n\t\t\t\trootElement.Name = providesArguments[providesModelParameter].ToLower(globa" + "l::System.Globalization.CultureInfo.InvariantCulture) + \"Value\";\r\n\t\t\t\trootElemen" + "t.Type = new global::System.CodeDom.CodeTypeReference(typeof("); #line 198 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rootElementType)); #line default #line hidden this.Write(@")); rootElement.Attributes = global::System.CodeDom.MemberAttributes.Private; // Create a property for the Model that delay-loads the model global::System.CodeDom.CodeMemberProperty rootElementProperty = new global::System.CodeDom.CodeMemberProperty(); rootElementProperty.Name = providesArguments[providesModelParameter]; rootElementProperty.Type = new global::System.CodeDom.CodeTypeReference(typeof(" ); #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rootElementType)); #line default #line hidden this.Write(@")); rootElementProperty.Attributes = global::System.CodeDom.MemberAttributes.Private; rootElementProperty.HasSet = false; rootElementProperty.HasGet = true; rootElementProperty.GetStatements.Add(new global::System.CodeDom.CodeMethodReturnStatement(new global::System.CodeDom.CodeFieldReferenceExpression(new global::System.CodeDom.CodeThisReferenceExpression(), rootElement.Name))); // Create a helper method for resolving relative paths global::System.CodeDom.CodeMemberMethod resolver = null; if (!this.oneTimeCodeGenerated && global::System.IO.File.Exists(this.Host.TemplateFile)) { resolver = new global::System.CodeDom.CodeMemberMethod(); resolver.Name = ""Convert"" + """ ); #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rootElementName)); #line default #line hidden this.Write("\" + \"RelativePathToTemplateRelativePath\";\r\n\t\t\t\t\tresolver.ReturnType = new global:" + ":System.CodeDom.CodeTypeReference(typeof(string));\r\n\t\t\t\t\tresolver.Parameters.Add" + "(new global::System.CodeDom.CodeParameterDeclarationExpression(typeof(string), \"" + "path\"));\r\n\t\t\t\t\tresolver.Attributes = global::System.CodeDom.MemberAttributes.Pub" + "lic;\r\n\t\t\t\t\tglobal::System.CodeDom.CodeVariableDeclarationStatement declaration =" + " new global::System.CodeDom.CodeVariableDeclarationStatement(typeof(string), \"mo" + "delPath\", new global::System.CodeDom.CodePrimitiveExpression((string)(requiresAr" + "guments[requiresFileParameter])));\r\n\t\t\t\t\tresolver.Statements.Add(declaration);\r\n" + "\t\t\t\t\tdeclaration = new global::System.CodeDom.CodeVariableDeclarationStatement(t" + "ypeof(string), \"templatePath\", new global::System.CodeDom.CodePrimitiveExpressio" + "n((string)(this.Host.TemplateFile)));\r\n\t\t\t\t\tresolver.Statements.Add(declaration)" + ";\r\n\t\t\t\t\tglobal::System.CodeDom.CodeMethodReturnStatement returnStatement = new g" + "lobal::System.CodeDom.CodeMethodReturnStatement(\r\n\t\t\t\t\t\tnew global::System.CodeD" + "om.CodeMethodInvokeExpression(\r\n\t\t\t\t\t\t\tnew global::System.CodeDom.CodeMethodRefe" + "renceExpression(new global::System.CodeDom.CodeTypeReferenceExpression(\"Microsof" + "t.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation\"), \"ConvertModel" + "RelativePathToTemplateRelativePath\"),\r\n\t\t\t\t\t\t\tnew global::System.CodeDom.CodeVar" + "iableReferenceExpression(\"modelPath\"),\r\n\t\t\t\t\t\t\tnew global::System.CodeDom.CodeVa" + "riableReferenceExpression(\"templatePath\"),\r\n\t\t\t\t\t\t\tnew global::System.CodeDom.Co" + "deVariableReferenceExpression(\"path\")));\r\n\t\t\t\t\tresolver.Statements.Add(returnSta" + "tement);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Generate the actual code using the CodeDomProvider\r\n\t\t" + "\t\tglobal::System.CodeDom.Compiler.CodeGeneratorOptions options = new global::Sys" + "tem.CodeDom.Compiler.CodeGeneratorOptions();\r\n\t\t\t\toptions.BlankLinesBetweenMembe" + "rs = true;\r\n\t\t\t\toptions.IndentString = \" \";\r\n\t\t\t\toptions.VerbatimOrder = true" + ";\r\n\t\t\t\toptions.BracingStyle = \"C\";\r\n\t\t\t\tusing (global::System.IO.StringWriter wr" + "iter = new global::System.IO.StringWriter(codeBuffer, global::System.Globalizati" + "on.CultureInfo.InvariantCulture))\r\n\t\t\t\t{\r\n\t\t\t\t\tlanguageProvider.GenerateCodeFrom" + "Member(rootElement, writer, options);\r\n\t\t\t\t\tlanguageProvider.GenerateCodeFromMem" + "ber(rootElementProperty, writer, options);\r\n\t\t\t\t\tif (resolver != null)\r\n\t\t\t\t\t{\r\n" + "\t\t\t\t\t\tlanguageProvider.GenerateCodeFromMember(resolver, writer, options);\r\n\t\t\t\t\t" + "}\r\n\t\t\t\t}\r\n\t\t\t\tthis.oneTimeCodeGenerated = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>" + "\r\n\t/// Contribute additively to initialization code for the TextTransformation g" + "enerated class.\r\n\t/// </summary>\r\n\t/// <remarks>\r\n\t/// This code will be added b" + "efore the call to the base class.\r\n\t/// </remarks>\r\n\t/// <param name=\"directiveN" + "ame\"></param>\r\n\t/// <param name=\"codeBuffer\"></param>\r\n\t/// <param name=\"languag" + "eProvider\"></param>\r\n\t/// <param name=\"requiresArguments\"></param>\r\n\t/// <param " + "name=\"providesArguments\"></param>\r\n\tprotected override void GeneratePreInitializ" + "ationCode(string directiveName, global::System.Text.StringBuilder codeBuffer, gl" + "obal::System.CodeDom.Compiler.CodeDomProvider languageProvider, global::System.C" + "ollections.Generic.IDictionary<string, string> requiresArguments, global::System" + ".Collections.Generic.IDictionary<string, string> providesArguments)\r\n\t{\r\n\t\tif ((" + "global::System.StringComparer.OrdinalIgnoreCase.Compare(directiveName, supported" + "DirectiveName) == 0))\r\n\t\t{\r\n\t\t\tif (languageProvider != null)\r\n\t\t\t{\r\n\t\t\t\tstring[]" + " domainModels = {\r\n\t\t\t\t\t\""); #line 270 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelFullName)); #line default #line hidden this.Write("\",\r\n\t\t\t\t};\r\n\r\n\t\t\t\tglobal::System.CodeDom.Compiler.CodeGeneratorOptions options = " + "new global::System.CodeDom.Compiler.CodeGeneratorOptions();\r\n\t\t\t\toptions.BlankLi" + "nesBetweenMembers = true;\r\n\t\t\t\toptions.IndentString = \" \";\r\n\t\t\t\toptions.Verba" + "timOrder = true;\r\n\t\t\t\toptions.BracingStyle = \"C\";\r\n\t\t\t\tusing (global::System.IO." + "StringWriter writer = new global::System.IO.StringWriter(codeBuffer, global::Sys" + "tem.Globalization.CultureInfo.InvariantCulture))\r\n\t\t\t\t{\r\n\t\t\t\t\tforeach (string do" + "mainModel in domainModels)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tglobal::System.CodeDom.CodeExpressionS" + "tatement addModel = new global::System.CodeDom.CodeExpressionStatement(new globa" + "l::System.CodeDom.CodeMethodInvokeExpression(new global::System.CodeDom.CodeMeth" + "odReferenceExpression(new global::System.CodeDom.CodeThisReferenceExpression(), " + "\"AddDomainModel\"), new global::System.CodeDom.CodeTypeOfExpression(domainModel))" + ");\r\n\t\t\t\t\t\tlanguageProvider.GenerateCodeFromStatement(addModel, writer, options);" + "\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t/// <summary>\r\n\t/// Property that indicates " + "whether this directive processor needs access to diagram data as well as\r\n\t/// m" + "odel data. Normally, this is not the case so the default value of this property" + " is false.\r\n\t/// Derived classes may override this property to change the value." + "\r\n\t/// </summary>\r\n\tprotected virtual bool LoadDiagramData\r\n\t{\r\n \t\tget\r\n\t\t{\r\n\t\t\t" + "return false;\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>\r\n\t/// Contribute additively to initiali" + "zation code for the TextTransformation generated class.\r\n\t/// </summary>\r\n\t/// <" + "remarks>\r\n\t/// This code will be added after the call to the base class.\r\n\t/// <" + "/remarks>\r\n\t/// <param name=\"directiveName\"></param>\r\n\t/// <param name=\"codeBuff" + "er\"></param>\r\n\t/// <param name=\"languageProvider\"></param>\r\n\t/// <param name=\"re" + "quiresArguments\"></param>\r\n\t/// <param name=\"providesArguments\"></param>\r\n\t[glob" + "al::System.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Globalization\", \"" + "CA1308:NormalizeStringsToUppercase\", Justification = \"Generated code is not mean" + "t for normalization purpose.\")]\r\n\t[global::System.Diagnostics.CodeAnalysis.Suppr" + "essMessage(\"Microsoft.Maintainability\", \"CA1506:AvoidExcessiveClassCoupling\", Ju" + "stification = \"Generated code.\")]\r\n\tprotected override void GeneratePostInitiali" + "zationCode(string directiveName, global::System.Text.StringBuilder codeBuffer, g" + "lobal::System.CodeDom.Compiler.CodeDomProvider languageProvider, global::System." + "Collections.Generic.IDictionary<string, string> requiresArguments, global::Syste" + "m.Collections.Generic.IDictionary<string, string> providesArguments)\r\n\t{\r\n\t\tif (" + "(global::System.StringComparer.OrdinalIgnoreCase.Compare(directiveName, supporte" + "dDirectiveName) == 0))\r\n\t\t{\r\n\t\t\t// We check the encoding of the model file, and " + "ask the host to use that\r\n\t\t\t// encoding to write the output. This is to make su" + "re we use the correct encoding\r\n\t\t\t// if the model file contains international c" + "haracters that could be used in \r\n\t\t\t// the template output.\r\n\t\t\tstring fileName" + " = requiresArguments[requiresFileParameter];\r\n\t\t\tif (!string.IsNullOrEmpty(fileN" + "ame) && global::System.IO.File.Exists(fileName))\r\n\t\t\t{\r\n\t\t\t\tHost.SetOutputEncodi" + "ng(VSTextTemplating::EncodingHelper.GetEncoding(fileName), false);\r\n\t\t\t}\r\n\r\n\t\t\ti" + "f (languageProvider != null)\r\n\t\t\t{\r\n\t\t\t\tglobal::System.CodeDom.CodeMethodInvokeE" + "xpression invokeLoad;\r\n\t\t\t\tglobal::System.String transactionName = providesArgum" + "ents[providesModelParameter].ToLower(global::System.Globalization.CultureInfo.In" + "variantCulture) + \"Transaction\";\r\n\t\t\t\tglobal::System.CodeDom.CodeVariableDeclara" + "tionStatement transactionDeclaration = new global::System.CodeDom.CodeVariableDe" + "clarationStatement(new global::System.CodeDom.CodeTypeReference(typeof(DslModeli" + "ng::Transaction)), transactionName, new global::System.CodeDom.CodePrimitiveExpr" + "ession(null));\r\n\t\t\t\tglobal::System.CodeDom.CodeStatement finallyStatement = new " + "global::System.CodeDom.CodeConditionStatement(new global::System.CodeDom.CodeBin" + "aryOperatorExpression(new global::System.CodeDom.CodeVariableReferenceExpression" + "(transactionName), global::System.CodeDom.CodeBinaryOperatorType.IdentityInequal" + "ity, new global::System.CodeDom.CodePrimitiveExpression(null)), new global::Syst" + "em.CodeDom.CodeExpressionStatement(new global::System.CodeDom.CodeMethodInvokeEx" + "pression(new global::System.CodeDom.CodeVariableReferenceExpression(transactionN" + "ame), \"Dispose\")));\r\n\t\t\t\tglobal::System.Collections.Generic.List<global::System." + "CodeDom.CodeStatement> txTryStatements = new global::System.Collections.Generic." + "List<global::System.CodeDom.CodeStatement>();\r\n\t\t\t\tglobal::System.CodeDom.CodeVa" + "riableDeclarationStatement serializationResultDeclaration = new global::System.C" + "odeDom.CodeVariableDeclarationStatement(new global::System.CodeDom.CodeTypeRefer" + "ence(typeof(DslModeling::SerializationResult)), \"serializationResult\", new globa" + "l::System.CodeDom.CodeObjectCreateExpression(new global::System.CodeDom.CodeType" + "Reference(typeof(DslModeling::SerializationResult))));\r\n\r\n\t\t\t\tinvokeLoad = new g" + "lobal::System.CodeDom.CodeMethodInvokeExpression(\r\n\t\t\t\t\tnew global::System.CodeD" + "om.CodeMethodReferenceExpression(new global::System.CodeDom.CodeFieldReferenceEx" + "pression(new global::System.CodeDom.CodeTypeReferenceExpression(typeof("); #line 340 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden this.Write("SerializationHelper)), \"Instance\"), \"LoadModel\"), new global::System.CodeDom.Code" + "VariableReferenceExpression(\"serializationResult\"), new global::System.CodeDom.C" + "odePropertyReferenceExpression(new global::System.CodeDom.CodeThisReferenceExpre" + "ssion(), \"Store\"), new global::System.CodeDom.CodePrimitiveExpression(requiresAr" + "guments[requiresFileParameter]), new global::System.CodeDom.CodePrimitiveExpress" + "ion(null), new global::System.CodeDom.CodePrimitiveExpression(null), new global:" + ":System.CodeDom.CodePrimitiveExpression(null));\r\n\r\n\t\t\t\tglobal::System.CodeDom.Co" + "deAssignStatement loadAssign = new global::System.CodeDom.CodeAssignStatement(ne" + "w global::System.CodeDom.CodeFieldReferenceExpression(new global::System.CodeDom" + ".CodeThisReferenceExpression(), providesArguments[providesModelParameter].ToLowe" + "r(global::System.Globalization.CultureInfo.InvariantCulture) + \"Value\"), invokeL" + "oad);\r\n\t\t\t\ttxTryStatements.Add(serializationResultDeclaration);\r\n\t\t\t\ttxTryStatem" + "ents.Add(new global::System.CodeDom.CodeAssignStatement(new global::System.CodeD" + "om.CodeVariableReferenceExpression(transactionName), new global::System.CodeDom." + "CodeMethodInvokeExpression(new global::System.CodeDom.CodePropertyReferenceExpre" + "ssion(new global::System.CodeDom.CodePropertyReferenceExpression(new global::Sys" + "tem.CodeDom.CodeThisReferenceExpression(), \"Store\"), \"TransactionManager\"), \"Beg" + "inTransaction\", new global::System.CodeDom.CodePrimitiveExpression(\"Load\"), new " + "global::System.CodeDom.CodePrimitiveExpression(true))));\r\n\t\t\t\ttxTryStatements.Ad" + "d(loadAssign);\r\n\t\t\t\tglobal::System.CodeDom.CodeConditionStatement serializationR" + "esultCheck = new global::System.CodeDom.CodeConditionStatement(\r\n\t\t\t\t\tnew global" + "::System.CodeDom.CodePropertyReferenceExpression(new global::System.CodeDom.Code" + "VariableReferenceExpression(\"serializationResult\"), \"Failed\"),\r\n\t\t\t\t\tnew global:" + ":System.CodeDom.CodeThrowExceptionStatement(new global::System.CodeDom.CodeObjec" + "tCreateExpression(new global::System.CodeDom.CodeTypeReference(typeof(DslModelin" + "g::SerializationException)), new global::System.CodeDom.CodeVariableReferenceExp" + "ression(\"serializationResult\")))\r\n\t\t\t\t);\r\n\t\t\t\ttxTryStatements.Add(serializationR" + "esultCheck);\r\n\t\t\t\ttxTryStatements.Add(new global::System.CodeDom.CodeExpressionS" + "tatement(new global::System.CodeDom.CodeMethodInvokeExpression(new global::Syste" + "m.CodeDom.CodeVariableReferenceExpression(transactionName), \"Commit\")));\r\n\t\t\t\tgl" + "obal::System.CodeDom.CodeTryCatchFinallyStatement txTryStatement = new global::S" + "ystem.CodeDom.CodeTryCatchFinallyStatement(txTryStatements.ToArray(), new global" + "::System.CodeDom.CodeCatchClause[] { }, new global::System.CodeDom.CodeStatement" + "[] { finallyStatement });\r\n\r\n\r\n\t\t\t\t// We check if the user has requested validat" + "ion to be performed. If so, we call\r\n\t\t\t\t// ValidateStore() on the base Modeling" + "TextTransformation class.\r\n\t\t\t\tstring validationCategories = requiresArguments[r" + "equiresValidationParameter];\r\n\t\t\t\tglobal::System.CodeDom.CodeMethodInvokeExpress" + "ion validationInvoke = null;\r\n\t\t\t\tif (!string.IsNullOrEmpty(validationCategories" + "))\r\n\t\t\t\t{\r\n\t\t\t\t\tvalidationInvoke = new global::System.CodeDom.CodeMethodInvokeEx" + "pression(new global::System.CodeDom.CodeThisReferenceExpression(), \"ValidateStor" + "e\", new global::System.CodeDom.CodePrimitiveExpression(validationCategories), ne" + "w global::System.CodeDom.CodePropertyReferenceExpression(new global::System.Code" + "Dom.CodeThisReferenceExpression(), \"Errors\"));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tglobal::System.Code" + "Dom.Compiler.CodeGeneratorOptions options = new global::System.CodeDom.Compiler." + "CodeGeneratorOptions();\r\n\t\t\t\toptions.BlankLinesBetweenMembers = true;\r\n\t\t\t\toptio" + "ns.IndentString = \" \";\r\n\t\t\t\toptions.VerbatimOrder = true;\r\n\t\t\t\toptions.Bracin" + "gStyle = \"C\";\r\n\t\t\t\tusing (global::System.IO.StringWriter writer = new global::Sy" + "stem.IO.StringWriter(codeBuffer, global::System.Globalization.CultureInfo.Invari" + "antCulture))\r\n\t\t\t\t{\r\n\t\t\t\t\tlanguageProvider.GenerateCodeFromStatement(transaction" + "Declaration, writer, options);\r\n\t\t\t\t\tlanguageProvider.GenerateCodeFromStatement(" + "txTryStatement, writer, options);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (validationInvoke != null)\r\n\t\t" + "\t\t\t{\r\n\t\t\t\t\t\tlanguageProvider.GenerateCodeFromStatement(new global::System.CodeDo" + "m.CodeExpressionStatement(validationInvoke), writer, options);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t" + "\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>\r\n\t/// Process arguments\r\n\t/// </summary>\r\n\t/// <p" + "aram name=\"directiveName\"></param>\r\n\t/// <param name=\"requiresArguments\"></param" + ">\r\n\t/// <param name=\"providesArguments\"></param>\r\n\tprotected override void PostP" + "rocessArguments(string directiveName, global::System.Collections.Generic.IDictio" + "nary<string, string> requiresArguments, global::System.Collections.Generic.IDict" + "ionary<string, string> providesArguments)\r\n\t{\r\n\t\tif ((global::System.StringCompa" + "rer.OrdinalIgnoreCase.Compare(directiveName, supportedDirectiveName) == 0))\r\n\t\t{" + "\r\n\t\t\t// Give the host a chance to resolve the fileName\r\n\t\t\trequiresArguments[req" + "uiresFileParameter] = this.Host.ResolvePath(requiresArguments[requiresFileParame" + "ter]);\r\n\t\t}\r\n\t}\r\n\r\n\t/// <summary>\r\n\t/// Return namespace imports necessary for r" + "unning template\r\n\t/// </summary>\r\n\t/// <returns></returns>\r\n\tpublic override str" + "ing[] GetImportsForProcessingRun()\r\n\t{\r\n\t\tglobal::System.Collections.Generic.Lis" + "t<string> imports = new global::System.Collections.Generic.List<string>(base.Get" + "ImportsForProcessingRun());\r\n\r\n\t\timports.Add(\"Microsoft.VisualStudio.Modeling\");" + "\r\n\t\timports.Add(\"System.CodeDom.Compiler\");\r\n"); #line 408 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" if (!String.IsNullOrEmpty(this.MetaModel.Namespace)) { #line default #line hidden this.Write("\t\timports.Add(\""); #line 412 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden this.Write("\");\r\n"); #line 413 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Shell\Model\DirectiveProcessorGenerator.tt" } #line default #line hidden this.Write(@" return imports.ToArray(); } /// <summary> /// Get assembly references needed for running template /// </summary> /// <returns></returns> public override string[] GetReferencesForProcessingRun() { global::System.Collections.Generic.List<string> references = new global::System.Collections.Generic.List<string>(base.GetReferencesForProcessingRun()); references.Add(this.GetType().Assembly.Location); references.Add(typeof(DslModeling::Store).Assembly.Location); references.Add(""Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll""); return references.ToArray(); } } } "); return(this.GenerationEnvironment.ToString()); }
public void GenerateDomainClass(DomainClass domainClass) { //string baseClass = "DslModeling::ModelElement"; string baseClass = "DslEditorModeling::DomainModelElement"; baseClass = CodeGenerationUtilities.GetBaseClass(domainClass, baseClass); string namespaceString = domainClass.Namespace; if (!string.IsNullOrEmpty(namespaceString)) { #line default #line hidden #line 24 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("namespace "); #line default #line hidden #line 25 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(namespaceString)); #line default #line hidden #line 25 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\r\n{\r\n"); #line default #line hidden #line 27 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" PushIndent("\t"); } int inheritanceDepth = CodeGenerationUtilities.CalculateInheritanceDepth(domainClass); this.Write(Utilities.Instance.GenerateSummary("DomainClass", domainClass, true)); if (domainClass.GeneratesDoubleDerived) { if (inheritanceDepth > 6) { #line default #line hidden #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("[global::System.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Maintainabili" + "ty\", \"CA1501:AvoidExcessiveInheritance\", Justification = \"Generated code.\")]\r\n"); #line default #line hidden #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } } else if (inheritanceDepth > 5) { #line default #line hidden #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("[global::System.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Maintainabili" + "ty\", \"CA1501:AvoidExcessiveInheritance\", Justification = \"Generated code.\")]\r\n"); #line default #line hidden #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } this.Write(Utilities.Instance.GenerateResourceAttributes(domainClass, GeneratedResourceName)); this.Write(Utilities.Instance.GenerateDebuggerDisplayAttribute(domainClass)); #line default #line hidden #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("[DslModeling::DomainObjectId(\""); #line default #line hidden #line 52 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Id.ToString("D"))); #line default #line hidden #line 52 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\")]\r\n"); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(domainClass.AccessModifier))); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationInheritanceModifier(domainClass))); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(domainClass))); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" : "); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(baseClass)); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (domainClass.IsDomainModel) { #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(", DslEditorModeling::IParentModelElement "); #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } #line default #line hidden #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" \r\n{\r\n\t#region Constructors, domain class Id\r\n\r\n\t/// <summary>\r\n\t/// "); #line default #line hidden #line 58 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name)); #line default #line hidden #line 58 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" domain class Id.\r\n\t/// </summary>\r\n\tpublic static readonly new global::System.Gu" + "id DomainClassId = new System.Guid(\""); #line default #line hidden #line 60 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Id.ToString("D"))); #line default #line hidden #line 60 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\");\r\n"); #line default #line hidden #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" PushIndent("\t"); GenerateDomainClassConstructors(domainClass, true); PopIndent(); #line default #line hidden #line 65 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t#endregion\r\n"); #line default #line hidden #line 67 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" PushIndent("\t"); DomainProperty nameProperty = null; foreach (DomainProperty property in domainClass.Properties) { this.Write(DomainPropertyGenerator.Instance.GenerateDomainProperty(property)); if (property.IsElementName) { nameProperty = property; } } foreach (DomainRole role in domainClass.RolesPlayed) { this.Write(DomainRoleGenerator.Instance.GenerateOppositeRoleAccessor(role)); } this.Write(MergeGenerator.Instance.GenerateModelMergeMembers(domainClass)); PopIndent(); if (domainClass.IsDomainModel) { #line default #line hidden #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t#region DomainFilePath\r\n\t/// <summary>\r\n\t/// Gets or sets the domain file path.\r" + "\n\t/// </summary>\r\n\tpublic string DomainFilePath{ get; set; }\r\n\t#endregion\r\n"); #line default #line hidden #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } string domainModelType = domainClass.GetMetaModel().GetFullName(true) + "DomainModel"; string modifier = "override "; #line default #line hidden #line 101 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t#region IDomainModelOwnable\r\n\t/*\r\n \t/// <summary>\r\n /// Gets the document dat" + "a\r\n /// </summary>\r\n public override DslEditorModeling::ModelData Document" + "Data\r\n {\r\n get\r\n\t\t{\r\n"); #line default #line hidden #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (this.EditorType == GenerationEditorType.VSPlugin) { #line default #line hidden #line 114 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\t// Null because in the visual studio plugin environment there can be multiple " + "model datas present at once. Therefore there\r\n\t\t\t// is no singleton accessor for" + " the model data.\r\n\t\t\treturn null;\r\n"); #line default #line hidden #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { #line default #line hidden #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn "); #line default #line hidden #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetMetaModel().GetFullName(true))); #line default #line hidden #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("DocumentData.Instance;\r\n"); #line default #line hidden #line 124 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } #line default #line hidden #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t}\r\n }*/\r\n\t\t\r\n\t/// <summary>\r\n /// Gets the domain model type.\r\n /// </" + "summary>\r\n /// <returns>Domain model type.</returns>\r\n public "); #line default #line hidden #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("System.Type GetDomainModelType()\r\n\t{\r\n\t\treturn typeof("); #line default #line hidden #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(");\r\n\t}\r\n\r\n /// <summary>\r\n /// Gets the domain model services.\r\n /// </s" + "ummary>\r\n /// <returns>Domain model services.</returns>\r\n public "); #line default #line hidden #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("DslEditorModeling::IDomainModelServices GetDomainModelServices()\r\n\t{\r\n\t\treturn "); #line default #line hidden #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.GetFullName(true))); #line default #line hidden #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("DomainModelServices.Instance;\r\n\t}\r\n\t\r\n /// <summary>\r\n /// Gets the domain " + "model DomainClassId.\r\n /// </summary>\r\n /// <returns></returns>\r\n publi" + "c "); #line default #line hidden #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("System.Guid GetDomainModelTypeId()\r\n\t{\r\n\t\treturn "); #line default #line hidden #line 154 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 154 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(".DomainModelId;\r\n\t}\t\r\n\r\n /// <summary>\r\n /// Gets or sets the value of the " + "property (which is marked as element name)\r\n /// </summary>\r\n public "); #line default #line hidden #line 160 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 160 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("string DomainElementName\r\n\t{\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (nameProperty != null) { #line default #line hidden #line 167 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn this."); #line default #line hidden #line 168 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 168 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(";\r\n"); #line default #line hidden #line 169 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { if (domainClass.BaseClass != null) { #line default #line hidden #line 175 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn base.DomainElementName;\r\n"); #line default #line hidden #line 177 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { #line default #line hidden #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn null;\r\n"); #line default #line hidden #line 183 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } } #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t}\r\n\t\tset\r\n\t\t{\r\n"); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (nameProperty != null) { #line default #line hidden #line 193 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\tthis."); #line default #line hidden #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" = value;\r\n"); #line default #line hidden #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { if (domainClass.BaseClass != null) { #line default #line hidden #line 201 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\tbase.DomainElementName = value;\r\n"); #line default #line hidden #line 203 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } } #line default #line hidden #line 206 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t}\r\n\t}\r\n\t\r\n /// <summary>\r\n /// Gets whether the domain element has a prop" + "erty marked as element name.\r\n /// </summary>\r\n public "); #line default #line hidden #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("bool DomainElementHasName \r\n {\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (nameProperty != null) { #line default #line hidden #line 220 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn true;\r\n"); #line default #line hidden #line 222 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { if (domainClass.BaseClass != null) { #line default #line hidden #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn base.DomainElementHasName;\r\n"); #line default #line hidden #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { #line default #line hidden #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn false;\r\n"); #line default #line hidden #line 236 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } } #line default #line hidden #line 239 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t}\r\n }\t\r\n\t\r\n /// <summary>\r\n /// Gets the domain element name info if t" + "here is one; Null otherwise.\r\n /// </summary>\r\n public "); #line default #line hidden #line 246 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 246 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("DslModeling::DomainPropertyInfo DomainElementNameInfo\r\n {\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 250 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" if (nameProperty != null) { #line default #line hidden #line 253 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn this.Store.DomainDataDirectory.GetDomainProperty("); #line default #line hidden #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true))); #line default #line hidden #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("."); #line default #line hidden #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("DomainPropertyId);\r\n"); #line default #line hidden #line 255 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { if (domainClass.BaseClass != null) { #line default #line hidden #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn base.DomainElementNameInfo;\r\n"); #line default #line hidden #line 263 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } else { #line default #line hidden #line 267 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\treturn null;\r\n"); #line default #line hidden #line 269 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } } #line default #line hidden #line 273 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t}\r\n }\r\n\t\r\n\t/// <summary>\r\n /// Gets the type of the ModelElement as strin" + "g.\r\n /// </summary>\r\n public "); #line default #line hidden #line 280 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 280 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("string DomainElementType\r\n {\r\n get\r\n {\r\n return \""); #line default #line hidden #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name)); #line default #line hidden #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\";\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Gets the display name of the t" + "ype of the ModelElement.\r\n /// </summary>\r\n public "); #line default #line hidden #line 291 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 291 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("string DomainElementTypeDisplayName\r\n {\r\n get\r\n {\r\n r" + "eturn \""); #line default #line hidden #line 295 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.DisplayName)); #line default #line hidden #line 295 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\";\r\n }\r\n }\t\t\r\n\t#endregion\r\n\r\n\t/// <summary>\r\n /// Gets the domain cl" + "ass Id of this element.\r\n /// </summary>\r\n /// <returns>DomainClass Id.</r" + "eturns>\r\n public override System.Guid GetDomainClassId()\r\n {\r\n retu" + "rn "); #line default #line hidden #line 306 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true))); #line default #line hidden #line 306 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(".DomainClassId;\r\n }\r\n}\r\n"); #line default #line hidden #line 309 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" // If this class is double-derived, generate the skeleton derived class (with just the // constructors) if (domainClass.GeneratesDoubleDerived) { this.Write(Utilities.Instance.GenerateSummary("DomainClass", domainClass, false)); if (inheritanceDepth > 5) { #line default #line hidden #line 317 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("[global::System.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Maintainabili" + "ty\", \"CA1501:AvoidExcessiveInheritance\", Justification = \"Generated code.\")]\r\n"); #line default #line hidden #line 319 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } #line default #line hidden #line 321 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t\t\r\n"); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(domainClass.AccessModifier))); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(domainClass.InheritanceModifier))); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name)); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(" : "); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(domainClass))); #line default #line hidden #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\r\n{\r\n\t#region Constructors\r\n"); #line default #line hidden #line 325 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" PushIndent("\t"); GenerateDomainClassConstructors(domainClass, false); PopIndent(); #line default #line hidden #line 329 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("\t#endregion\r\n}\r\n"); #line default #line hidden #line 332 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } if (!string.IsNullOrEmpty(namespaceString)) { PopIndent(); #line default #line hidden #line 337 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" this.Write("}\r\n"); #line default #line hidden #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainClassGenerator.tt" } }
private void GenerateResourceAttributesInternal(ModelElement domainObj, string genResourceName) { if (domainObj == null) { return; } string resourceKey = ""; string domainModelType = ""; string className = ""; bool generateCategory = false; bool generateDisplayName = false; MetaModel dm = null; if (domainObj is DomainClass) { generateDisplayName = true; DomainClass c = (DomainClass)domainObj; resourceKey = c.GetFullName(false); dm = c.GetMetaModel(); className = CodeGenerationUtilities.GetGenerationClassName(c); } else if (domainObj is DomainRelationship) { generateDisplayName = true; DomainRelationship c = (DomainRelationship)domainObj; resourceKey = c.GetFullName(false); dm = c.GetMetaModel(); className = CodeGenerationUtilities.GetGenerationClassName(c); } else if (domainObj is DomainProperty) { generateDisplayName = true; DomainProperty p = (DomainProperty)domainObj; AttributedDomainElement c = p.Element; resourceKey = c.GetFullName(false) + "/" + p.Name; generateCategory = !String.IsNullOrEmpty(p.Category); dm = c.GetMetaModel(); //if( c is DomainClass ) // dm = (c as DomainClass).GetMetaModel(); //else // dm = (c as DomainRelationship).GetMetaModel(); } else if (domainObj is DomainRole) { generateDisplayName = true; DomainRole r = (DomainRole)domainObj; generateCategory = !String.IsNullOrEmpty(r.Category); DomainRelationship rel = r.Relationship; resourceKey = rel.GetFullName(false) + "/" + r.Name; dm = rel.GetMetaModel(); } else if (domainObj is EnumerationLiteral) { //generateDisplayName = true; EnumerationLiteral literal = (EnumerationLiteral)domainObj; DomainEnumeration domainEnum = literal.DomainEnumeration; dm = domainEnum.MetaModel; resourceKey = domainEnum.GetFullName(false) + "/" + literal.Name; } else if (domainObj is MetaModel) { generateDisplayName = true; dm = (MetaModel)domainObj; resourceKey = dm.GetFullName(false) + "DomainModel"; } domainModelType = dm.GetFullName(true) + "DomainModel"; // If no resource name specified for DslLibrary, don't generate any resource attributes. if (String.IsNullOrEmpty(dm.GeneratedResourceName)) { return; } if (generateDisplayName) { #line default #line hidden #line 179 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("[DslDesign::DisplayNameResource(\""); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey)); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(".DisplayName\", typeof("); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("), \""); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName)); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("\")]\r\n"); #line default #line hidden #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" } if (generateCategory) { #line default #line hidden #line 185 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("[DslDesign::CategoryResource(\""); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey)); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(".Category\", typeof("); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("), \""); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName)); #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("\")]\r\n"); #line default #line hidden #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" } #line default #line hidden #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("[DslDesign::DescriptionResource(\""); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey)); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(".Description\", typeof("); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("), \""); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName)); #line default #line hidden #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("\")]\r\n"); #line default #line hidden #line 191 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" if (domainObj is DomainClass) { #line default #line hidden #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("[DslModeling::DomainModelOwner(typeof("); #line default #line hidden #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" this.Write("))]\r\n"); #line default #line hidden #line 196 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt" } }