10 namespace SiliconStudio.Paradox.VisualStudio.
Commands.DataGenerator
14 using System.Collections.Generic;
15 using SiliconStudio.AssemblyProcessor;
22 #line 1 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
23 [global::System.CodeDom.Compiler.GeneratedCodeAttribute(
"Microsoft.VisualStudio.TextTemplating",
"11.0.0.0")]
32 this.Write(
@"// <auto-generated>
33 // Do not edit this file yourself!
35 // This code was generated by Paradox Data Code Generator.
36 // To generate it yourself, please install SiliconStudio.Paradox.VisualStudio.Package .vsix
37 // and re-save the associated .pdxdata.
42 #line 15 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
43 this.Write(this.ToStringHelper.ToStringWithCulture(assembly.Name.Name));
47 this.Write(
".Data\r\n{\r\n /// <summary>\r\n /// Module initializer for data types of assembl" +
50 #line 18 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
51 this.Write(this.ToStringHelper.ToStringWithCulture(assembly.Name.Name));
55 this.Write(
".\r\n /// </summary>\r\n class DataInitializer\r\n {\r\n [SiliconStudio.C" +
56 "ore.ModuleInitializer]\r\n internal static void Initialize()\r\n {\r\n");
58 #line 25 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
59 foreach (var type
in processedConverterTypes)
61 var dataConverterInfo = type.Value;
66 this.Write(
" // Register type ");
68 #line 29 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
69 this.Write(this.ToStringHelper.ToStringWithCulture(dataConverterInfo.DataInfo.Type.Name));
73 this.Write(
"\r\n SiliconStudio.Core.Serialization.Converters.ConverterContext.Regist" +
76 #line 30 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
77 this.Write(this.ToStringHelper.ToStringWithCulture(dataConverterInfo.Type.ConvertCSharp()));
81 this.Write(
"());\r\n");
83 #line 31 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
84 if ((dataConverterInfo.DataInfo.Flags & DataTypeFlags.EntityComponent) != 0) {
88 this.Write(
" // Register entity component reference for type ");
90 #line 32 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
91 this.Write(this.ToStringHelper.ToStringWithCulture(dataConverterInfo.DataInfo.Type.Name));
95 this.Write(
"\r\n SiliconStudio.Core.Serialization.Converters.ConverterContext.Regist" +
96 "erConverter(new SiliconStudio.Paradox.Data.EntityComponentReferenceDataConverter" +
99 #line 33 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
100 this.Write(this.ToStringHelper.ToStringWithCulture(type.Key.ConvertCSharp()));
104 this.Write(
">());\r\n");
106 #line 34 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
111 this.Write(
" }\r\n }\r\n}\r\n\r\n");
113 #line 39 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
114 foreach (var type
in processedTypes)
116 var dataTypeInfo = type.Value;
117 var isAutoGenerated = (type.Value.Flags & DataTypeFlags.Generated) != 0;
118 ChangeNamespace(dataTypeInfo.Type.Namespace);
123 this.Write(
" /// <summary>\r\n /// Data type for <see cref=\"");
125 #line 46 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
126 this.Write(this.ToStringHelper.ToStringWithCulture(type.Key.ConvertCSharp()));
130 this.Write(
"\"/>.\r\n /// </summary>\r\n [SiliconStudio.Core.DataContract(\"");
132 #line 48 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
133 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeInfo.Type.Name + dataTypeInfo.Type.GenerateGenerics()));
137 this.Write(
"\")]\r\n");
139 #line 49 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
140 if ((type.Value.Flags & DataTypeFlags.ContentReference) != 0) {
144 this.Write(
" [SiliconStudio.Core.Serialization.Contents.ContentSerializer(typeof(SiliconSt" +
145 "udio.Core.Serialization.Contents.DataContentSerializer<");
147 #line 50 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
148 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeInfo.Type.Name + dataTypeInfo.Type.GenerateGenerics()));
152 this.Write(
">))]\r\n [SiliconStudio.Core.Serialization.Contents.ContentSerializer(typeof(Sil" +
153 "iconStudio.Core.Serialization.Converters.DataContentConverterSerializer<");
155 #line 51 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
156 this.Write(this.ToStringHelper.ToStringWithCulture(type.Key.ConvertCSharp()));
160 this.Write(
">))]\r\n");
162 #line 52 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
167 this.Write(
" public partial class ");
169 #line 53 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
170 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeInfo.Type.Name + dataTypeInfo.Type.GenerateGenerics()));
175 #line 53 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
176 if (type.Value.BaseType != null) {
182 #line 53 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
183 this.Write(this.ToStringHelper.ToStringWithCulture(type.Value.BaseType.ConvertCSharp()));
188 #line 53 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
193 this.Write(
"\r\n {\r\n");
195 #line 56 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
196 if (isAutoGenerated) {
197 bool firstLine =
true;
198 foreach (var property
in type.Value.Properties) {
199 if (!firstLine) { this.Write(
"\r\n"); }
204 this.Write(
" /// <summary>\r\n /// Data field for <see cref=\"");
206 #line 62 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
207 this.Write(this.ToStringHelper.ToStringWithCulture(type.Key.ConvertCSharp()));
213 #line 62 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
214 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
218 this.Write(
"\"/>.\r\n /// </summary>\r\n public ");
220 #line 64 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
221 this.Write(this.ToStringHelper.ToStringWithCulture(property.DataType.ConvertCSharp()));
227 #line 64 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
228 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
233 #line 64 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
236 if (property.InitializerType != null) {
240 this.Write(
" = new ");
242 #line 66 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
243 this.Write(this.ToStringHelper.ToStringWithCulture(property.InitializerType.ConvertCSharp()));
249 #line 66 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
256 #line 67 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
262 this.Write(
" }\r\n\r\n");
264 #line 71 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
269 this.Write(
"\r\n\r\n");
271 #line 74 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
272 foreach (var type
in processedConverterTypes)
274 var dataConverterInfo = type.Value;
275 var dataTypeInfo = dataConverterInfo.DataInfo;
276 var isAutoGenerated = dataConverterInfo.Generate;
278 var objectTypeCSharp = type.Key.ConvertCSharp();
279 var dataTypeCSharp = dataTypeInfo.Type.ConvertCSharp();
281 var baseType = type.Key.BaseType != null? type.Key.BaseType.Resolve(): null;
282 var baseTypeFlags = baseType != null? GetDataTypeFlags(baseType): null;
283 var isInherited = baseTypeFlags != null && (baseTypeFlags.Value & DataTypeFlags.NoDataType) == 0;
284 var baseDataType = isInherited? GetDataType(baseType): null;
285 var baseConverterType = isInherited? GetDataConverterType(baseType): null;
289 ChangeNamespace(dataConverterInfo.Type.Namespace);
294 this.Write(
" /// <summary>\r\n /// Converter type for <see cref=\"");
296 #line 94 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
297 this.Write(this.ToStringHelper.ToStringWithCulture(type.Key.ConvertCSharp()));
301 this.Write(
"\"/>.\r\n /// </summary>\r\n public partial class ");
303 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
304 this.Write(this.ToStringHelper.ToStringWithCulture(dataConverterInfo.Type.Name));
309 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
310 this.Write(this.ToStringHelper.ToStringWithCulture(dataConverterInfo.Type.GenerateGenerics()));
316 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
322 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
323 this.Write(this.ToStringHelper.ToStringWithCulture(baseConverterType.ConvertCSharp()));
328 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
333 this.Write(
"SiliconStudio.Core.Serialization.Converters.DataConverter<");
335 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
336 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
342 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
343 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
349 #line 96 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
354 this.Write(
"\t\r\n\t{\r\n");
356 #line 99 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
361 this.Write(
"\t\t/// <inheritdoc/>\r\n\t\tpublic override System.Type DataType\r\n\t\t{\r\n\t\t\tget { return" +
364 #line 103 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
365 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
369 this.Write(
"); }\r\n\t\t}\r\n\r\n\t\t/// <inheritdoc/>\r\n\t\tpublic override System.Type ObjectType\r\n\t\t{\r\n" +
370 "\t\t\tget { return typeof(");
372 #line 109 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
373 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
377 this.Write(
"); }\r\n\t\t}\r\n\t\t\t\t\r\n /// <inheritdoc/>\r\n public override void ConvertF" +
378 "romData(SiliconStudio.Core.Serialization.Converters.ConverterContext converterCo" +
379 "ntext, object data, ref object obj)\r\n {\r\n var dataT = (");
381 #line 115 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
382 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
386 this.Write(
")data;\r\n var objT = (");
388 #line 116 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
389 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
394 ConvertFromData(converterContext, dataT, ref objT);
399 public override void ConvertToData(SiliconStudio.Core.Serialization.Converters.ConverterContext converterContext, ref object data, object obj)
403 #line 124 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
404 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
408 this.Write(
")data;\r\n var objT = (");
410 #line 125 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
411 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
415 this.Write(
")obj;\r\n ConvertToData(converterContext, ref dataT, objT);\r\n " +
416 " data = dataT;\r\n }\r\n\r\n\t\t");
418 #line 130 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
424 #line 131 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
425 if ((dataTypeInfo.Flags & DataTypeFlags.CustomConvertToData) == 0) {
429 this.Write(
" /// <inheritdoc/>\r\n public ");
431 #line 133 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
436 this.Write(
"override ");
438 #line 133 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
443 this.Write(
"void ConvertToData(SiliconStudio.Core.Serialization.Converters.ConverterContext c" +
446 #line 133 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
447 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
451 this.Write(
" target, ");
453 #line 133 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
454 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
458 this.Write(
" source)\r\n {\r\n");
460 #line 135 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
461 if(!dataTypeInfo.Type.IsValueType){
465 this.Write(
"\t\t\tif(target == null)\r\n target = new ");
467 #line 137 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
468 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
472 this.Write(
"();\r\n\t\t\t\t\r\n");
474 #line 139 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
480 #line 140 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
485 this.Write(
"\t\t\t{\r\n\t\t\t\tvar targetBase = (");
487 #line 142 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
488 this.Write(this.ToStringHelper.ToStringWithCulture(baseDataType.ConvertCSharp()));
492 this.Write(
")target;\r\n\t\t\t\tvar sourceBase = (");
494 #line 143 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
495 this.Write(this.ToStringHelper.ToStringWithCulture(baseType.ConvertCSharp()));
499 this.Write(
")source;\r\n\t\t\t\tConvertToData(context, ref targetBase, sourceBase);\r\n\t\t\t}\r\n\r\n");
501 #line 147 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
507 #line 148 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
508 foreach (var property
in dataTypeInfo.Properties) {
509 if (property.DataType == property.OriginalType) {
513 this.Write(
" target.");
515 #line 150 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
516 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
520 this.Write(
" = source.");
522 #line 150 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
523 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
529 #line 151 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
534 this.Write(
" context.ConvertToData(ref target.");
536 #line 152 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
537 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
541 this.Write(
", source.");
543 #line 152 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
544 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
548 this.Write(
");\r\n");
550 #line 153 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
555 this.Write(
" }\r\n");
557 #line 155 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
564 #line 157 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
565 if ((dataTypeInfo.Flags & DataTypeFlags.CustomConvertFromData) == 0) {
570 #line 158 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
571 if ((dataConverterInfo.DataInfo.Flags & DataTypeFlags.EntityComponent) != 0) {
575 this.Write(
" public override bool CanConstruct\r\n {\r\n get { return tr" +
576 "ue; }\r\n }\r\n\t\t\r\n");
578 #line 164 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
583 this.Write(
"\t\t\r\n /// <inheritdoc/>\r\n public override void ConstructFromData(Sil" +
584 "iconStudio.Core.Serialization.Converters.ConverterContext converterContext, obje" +
585 "ct data, ref object obj)\r\n {\r\n var dataT = (");
587 #line 168 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
588 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
592 this.Write(
")data;\r\n var objT = (");
594 #line 169 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
595 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
599 this.Write(
")obj;\r\n ConstructFromData(converterContext, dataT, ref objT);\r\n " +
600 " obj = objT;\r\n }\r\n\r\n");
602 #line 174 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
607 this.Write(
"\t\t/// <inheritdoc/>\r\n public ");
609 #line 176 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
614 this.Write(
"override ");
616 #line 176 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
621 this.Write(
"void ConstructFromData(SiliconStudio.Core.Serialization.Converters.ConverterConte" +
624 #line 176 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
625 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
629 this.Write(
" target, ref ");
631 #line 176 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
632 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
636 this.Write(
" source)\r\n\t\t{\r\n\t\t\tsource = new ");
638 #line 178 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
639 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
643 this.Write(
"();\r\n\t\t}\r\n\r\n");
645 #line 181 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
650 this.Write(
" /// <inheritdoc/>\r\n public ");
652 #line 183 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
657 this.Write(
"override ");
659 #line 183 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
664 this.Write(
"void ConvertFromData(SiliconStudio.Core.Serialization.Converters.ConverterContext" +
667 #line 183 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
668 this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));
672 this.Write(
" target, ref ");
674 #line 183 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
675 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
679 this.Write(
" source)\r\n {\r\n");
681 #line 185 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
683 if ((dataConverterInfo.DataInfo.Flags & DataTypeFlags.EntityComponent) == 0) {
688 #line 187 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
689 if(!type.Key.IsValueType){
693 this.Write(
" if(source == null)\r\n source = new ");
695 #line 189 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
696 this.Write(this.ToStringHelper.ToStringWithCulture(objectTypeCSharp));
700 this.Write(
"();\r\n\r\n");
702 #line 191 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
708 #line 192 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
713 this.Write(
"\t\t\t{\r\n\t\t\t\tvar targetBase = (");
715 #line 194 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
716 this.Write(this.ToStringHelper.ToStringWithCulture(baseDataType.ConvertCSharp()));
720 this.Write(
")target;\r\n\t\t\t\tvar sourceBase = (");
722 #line 195 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
723 this.Write(this.ToStringHelper.ToStringWithCulture(baseType.ConvertCSharp()));
727 this.Write(
")source;\r\n\t\t\t\tConvertFromData(context, targetBase, ref sourceBase);\r\n\t\t\t}\r\n\r\n");
729 #line 199 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
735 #line 200 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
741 #line 201 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
742 foreach (var property
in dataTypeInfo.Properties) {
743 if (property.DataType == property.OriginalType) {
747 this.Write(
" source.");
749 #line 203 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
750 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
754 this.Write(
" = target.");
756 #line 203 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
757 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
763 #line 204 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
768 this.Write(
" {\r\n var temp = source.");
770 #line 206 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
771 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
775 this.Write(
";\r\n context.ConvertFromData(target.");
777 #line 207 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
778 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
782 this.Write(
", ref temp);\r\n");
784 #line 208 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
785 if (property.HasPublicSetAccessor) {
789 this.Write(
" source.");
791 #line 209 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
792 this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));
796 this.Write(
" = temp;\r\n");
798 #line 210 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
803 this.Write(
" }\r\n");
805 #line 212 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
810 this.Write(
" }\r\n");
812 #line 214 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
817 this.Write(
" }\r\n");
819 #line 216 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
826 #line 218 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
832 #line 219 "C:\Dev\Paradox\sources\tools\SiliconStudio.Paradox.VisualStudio.Commands\DataGenerator\DataConverterGenerator.tt"
833 ChangeNamespace(
string.Empty);
837 return this.GenerationEnvironment.ToString();
847 [global::System.CodeDom.Compiler.GeneratedCodeAttribute(
"Microsoft.VisualStudio.TextTemplating",
"11.0.0.0")]
851 private global::System.Text.StringBuilder generationEnvironmentField;
852 private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField;
853 private global::System.Collections.Generic.List<
int> indentLengthsField;
854 private string currentIndentField =
"";
855 private bool endsWithNewline;
856 private global::System.Collections.Generic.IDictionary<string,
object> sessionField;
862 protected System.Text.StringBuilder GenerationEnvironment
866 if ((this.generationEnvironmentField == null))
868 this.generationEnvironmentField =
new global::System.Text.StringBuilder();
870 return this.generationEnvironmentField;
874 this.generationEnvironmentField = value;
880 public System.CodeDom.Compiler.CompilerErrorCollection Errors
884 if ((this.errorsField == null))
886 this.errorsField =
new global::System.CodeDom.Compiler.CompilerErrorCollection();
888 return this.errorsField;
894 private System.Collections.Generic.List<
int> indentLengths
898 if ((this.indentLengthsField == null))
900 this.indentLengthsField =
new global::System.Collections.Generic.List<
int>();
902 return this.indentLengthsField;
908 public string CurrentIndent
912 return this.currentIndentField;
918 public virtual global::System.Collections.Generic.IDictionary<string,
object> Session
922 return this.sessionField;
926 this.sessionField = value;
930 #region Transform-time helpers
934 public void Write(
string textToAppend)
936 if (
string.IsNullOrEmpty(textToAppend))
942 if (((this.GenerationEnvironment.Length == 0)
943 ||
this.endsWithNewline))
945 this.GenerationEnvironment.Append(this.currentIndentField);
946 this.endsWithNewline =
false;
949 if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture))
951 this.endsWithNewline =
true;
955 if ((this.currentIndentField.Length == 0))
957 this.GenerationEnvironment.Append(textToAppend);
961 textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField));
964 if (this.endsWithNewline)
966 this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length));
970 this.GenerationEnvironment.Append(textToAppend);
978 this.Write(textToAppend);
979 this.GenerationEnvironment.AppendLine();
980 this.endsWithNewline =
true;
987 this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture,
format, args));
994 this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture,
format, args));
1001 System.CodeDom.Compiler.CompilerError error =
new global::System.CodeDom.Compiler.CompilerError();
1002 error.ErrorText = message;
1003 this.Errors.Add(error);
1010 System.CodeDom.Compiler.CompilerError error =
new global::System.CodeDom.Compiler.CompilerError();
1011 error.ErrorText = message;
1012 error.IsWarning =
true;
1013 this.Errors.Add(error);
1020 if ((indent == null))
1022 throw new global::System.ArgumentNullException(
"indent");
1024 this.currentIndentField = (this.currentIndentField + indent);
1025 this.indentLengths.Add(indent.Length);
1032 string returnValue =
"";
1033 if ((this.indentLengths.Count > 0))
1035 int indentLength = this.indentLengths[(this.indentLengths.Count - 1)];
1036 this.indentLengths.RemoveAt((this.indentLengths.Count - 1));
1037 if ((indentLength > 0))
1039 returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength));
1040 this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength));
1050 this.indentLengths.Clear();
1051 this.currentIndentField =
"";
1054 #region ToString Helpers
1060 private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture;
1064 public System.IFormatProvider FormatProvider
1068 return this.formatProviderField ;
1072 if ((value != null))
1074 this.formatProviderField = value;
1083 if ((objectToConvert == null))
1085 throw new global::System.ArgumentNullException(
"objectToConvert");
1087 System.Type t = objectToConvert.GetType();
1088 System.Reflection.MethodInfo method = t.GetMethod(
"ToString",
new System.Type[] {
1089 typeof(System.IFormatProvider)});
1090 if ((method == null))
1092 return objectToConvert.ToString();
1096 return ((
string)(method.Invoke(objectToConvert,
new object[] {
1097 this.formatProviderField })));
1101 private ToStringInstanceHelper toStringHelperField =
new ToStringInstanceHelper();
1105 public ToStringInstanceHelper ToStringHelper
1109 return this.toStringHelperField;
Utility class to produce culture-oriented representation of an object as a string.
void WriteLine(string textToAppend)
Write text directly into the generated output
Class to produce the template output
void ClearIndent()
Remove any indentation
void Write(string format, params object[] args)
Write formatted text directly into the generated output
string PopIndent()
Remove the last indent that was added with PushIndent
virtual string TransformText()
Create the template output
void Write(string textToAppend)
Write text directly into the generated output
void Error(string message)
Raise an error
void PushIndent(string indent)
Increase the indent
Base class for this transformation
void Warning(string message)
Raise a warning
_In_ size_t _In_ size_t _In_ DXGI_FORMAT format
void WriteLine(string format, params object[] args)
Write formatted text directly into the generated output
string ToStringWithCulture(object objectToConvert)
This is called from the compile/run appdomain to convert objects within an expression block to a stri...