public string GetDeserializeUpdateIntoUpdateString(string updateFieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var mapSize = {schemaObject}.GetObjectCount({fieldNumber});"); CommonCodeWriterBlocks.WriteCheckIsCleared(codeWriter, fieldNumber); codeWriter.WriteLine("if (mapSize > 0 || isCleared)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"{updateFieldInstance} = new global::Improbable.Gdk.Core.Option<{Type}>(new {Type}());"); } codeWriter.WriteLine("for (var i = 0; i < mapSize; i++)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var mapObj = {schemaObject}.IndexObject({fieldNumber}, (uint) i);"); codeWriter.WriteLine($"var key = {keyType.GetDeserializationExpression("mapObj", 1)};"); codeWriter.WriteLine($"var value = {valueType.GetDeserializationExpression("mapObj", 2)};"); codeWriter.WriteLine($"{updateFieldInstance}.Value.Add(key, value);"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializeDataIntoUpdateString(string updateFieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var value = {containedType.GetDeserializationExpression(schemaObject, fieldNumber)};"); codeWriter.WriteLine($"{updateFieldInstance} = new global::Improbable.Gdk.Core.Option<{Type}>(value);"); return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 3 "Templates\UnityTypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.GetGeneratedHeader())); #line default #line hidden #line 3 "Templates\UnityTypeGenerator.tt" this.Write("\r\n\r\nusing System.Linq;\r\nusing Improbable.Gdk.Core;\r\n\r\nnamespace "); #line default #line hidden #line 8 "Templates\UnityTypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(qualifiedNamespace)); #line default #line hidden #line 8 "Templates\UnityTypeGenerator.tt" this.Write("\r\n{ \r\n"); #line default #line hidden #line 10 "Templates\UnityTypeGenerator.tt" var generator = new UnityTypeContent(); #line default #line hidden #line 13 "Templates\UnityTypeGenerator.tt" this.Write(" "); #line default #line hidden #line 13 "Templates\UnityTypeGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate(typeDefinition, enumSet)))); #line default #line hidden #line 13 "Templates\UnityTypeGenerator.tt" this.Write("\r\n}\r\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public string GetSerializationString(string fieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"foreach (var value in {fieldInstance})"); using (codeWriter.Scope()) { codeWriter.WriteLine(containedType.GetSerializationStatement("value", schemaObject, fieldNumber)); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializationString(string fieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"if ({containedType.GetCountExpression(schemaObject, fieldNumber)} == 1)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"{fieldInstance} = new {Type}({containedType.GetDeserializationExpression(schemaObject, fieldNumber)});"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetTrySetClearedFieldString(string fieldInstance, string componentUpdateSchemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"if ({fieldInstance}.Count == 0)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"{componentUpdateSchemaObject}.AddClearedField({fieldNumber});"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetSerializationString(string fieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"foreach (var keyValuePair in {fieldInstance})"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var mapObj = {schemaObject}.AddObject({fieldNumber});"); codeWriter.WriteLine(keyType.GetSerializationStatement("keyValuePair.Key", "mapObj", 1)); codeWriter.WriteLine(valueType.GetSerializationStatement("keyValuePair.Value", "mapObj", 2)); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializationString(string fieldInstance, string schemaObject, int fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var list = {fieldInstance} = new {Type}();"); codeWriter.WriteLine($"var listLength = {containedType.GetCountExpression(schemaObject, fieldNumber)};"); codeWriter.WriteLine("for (var i = 0; i < listLength; i++)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"list.Add({containedType.GetFieldIndexExpression(schemaObject, fieldNumber, "i")});"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 3 "Templates\UnityEnumGenerator.tt" this.Write("\r\n"); #line default #line hidden #line 4 "Templates\UnityEnumGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.GetGeneratedHeader())); #line default #line hidden #line 4 "Templates\UnityEnumGenerator.tt" this.Write("\r\n\r\nnamespace "); #line default #line hidden #line 6 "Templates\UnityEnumGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(qualifiedNamespace)); #line default #line hidden #line 6 "Templates\UnityEnumGenerator.tt" this.Write("\r\n{ \r\n "); #line default #line hidden #line 8 "Templates\UnityEnumGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(new UnityEnumContent().Generate(enumDefinition)))); #line default #line hidden #line 8 "Templates\UnityEnumGenerator.tt" this.Write("\r\n}\r\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public string GetDeserializationString(string fieldInstance, string schemaObject, int fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var map = {fieldInstance} = new {Type}();"); codeWriter.WriteLine($"var mapSize = {schemaObject}.GetObjectCount({fieldNumber});"); codeWriter.WriteLine("for (var i = 0; i < mapSize; i++)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var mapObj = {schemaObject}.IndexObject({fieldNumber}, (uint) i);"); codeWriter.WriteLine($"var key = {keyType.GetDeserializationExpression("mapObj", 1)};"); codeWriter.WriteLine($"var value = {valueType.GetDeserializationExpression("mapObj", 2)};"); codeWriter.WriteLine("map.Add(key, value);"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializeDataIntoUpdateString(string updateFieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var listSize = {containedType.GetCountExpression(schemaObject, fieldNumber)};"); codeWriter.WriteLine($"{updateFieldInstance} = new global::Improbable.Gdk.Core.Option<{Type}>(new {Type}());"); codeWriter.WriteLine("for (var i = 0; i < listSize; i++)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var value = {containedType.GetFieldIndexExpression(schemaObject, fieldNumber, "i")};"); codeWriter.WriteLine($"{updateFieldInstance}.Value.Add(value);"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializeUpdateString(string fieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); CommonCodeWriterBlocks.WriteCheckIsCleared(codeWriter, fieldNumber); codeWriter.WriteLine("if (isCleared)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"{fieldInstance} = new {Type}();"); } codeWriter.WriteLine($"else if ({containedType.GetCountExpression(schemaObject, fieldNumber)} == 1)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var value = {containedType.GetDeserializationExpression(schemaObject, fieldNumber)};"); codeWriter.WriteLine($"{fieldInstance} = new {Type}(value);"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public string GetDeserializeUpdateString(string fieldInstance, string schemaObject, uint fieldNumber, int indents) { var codeWriter = new CodeWriter(); codeWriter.WriteLine($"var listSize = {containedType.GetCountExpression(schemaObject, fieldNumber)};"); CommonCodeWriterBlocks.WriteCheckIsCleared(codeWriter, fieldNumber); codeWriter.WriteLine("if (listSize > 0 || isCleared)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"{fieldInstance}.Clear();"); } codeWriter.WriteLine("for (var i = 0; i < listSize; i++)"); using (codeWriter.Scope()) { codeWriter.WriteLine($"var value = {containedType.GetFieldIndexExpression(schemaObject, fieldNumber, "i")};"); codeWriter.WriteLine($"{fieldInstance}.Add(value);"); } return(CommonGeneratorUtils.IndentEveryNewline(codeWriter.Build(), indents)); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 3 "Templates\UnityTypeContent.tt" var typeDetails = GetTypeDetails(); var fieldDetailsList = GetFieldDetailsList(); #line default #line hidden #line 7 "Templates\UnityTypeContent.tt" this.Write("\r\npublic struct "); #line default #line hidden #line 8 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(typeDetails.CapitalisedName)); #line default #line hidden #line 8 "Templates\UnityTypeContent.tt" this.Write("\r\n{\r\n"); #line default #line hidden #line 10 "Templates\UnityTypeContent.tt" foreach (var fieldDetails in fieldDetailsList) { #line default #line hidden #line 11 "Templates\UnityTypeContent.tt" this.Write(" public "); #line default #line hidden #line 11 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.Type)); #line default #line hidden #line 11 "Templates\UnityTypeContent.tt" this.Write(" "); #line default #line hidden #line 11 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.PascalCaseName)); #line default #line hidden #line 11 "Templates\UnityTypeContent.tt" this.Write(";\r\n"); #line default #line hidden #line 12 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 13 "Templates\UnityTypeContent.tt" if (fieldDetailsList.Count > 0) { var constructorArgs = GetConstructorArgs(); #line default #line hidden #line 18 "Templates\UnityTypeContent.tt" this.Write("\r\n public "); #line default #line hidden #line 19 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(typeDetails.CapitalisedName)); #line default #line hidden #line 19 "Templates\UnityTypeContent.tt" this.Write("("); #line default #line hidden #line 19 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(constructorArgs)); #line default #line hidden #line 19 "Templates\UnityTypeContent.tt" this.Write(")\r\n {\r\n"); #line default #line hidden #line 21 "Templates\UnityTypeContent.tt" foreach (var fieldDetails in fieldDetailsList) { #line default #line hidden #line 22 "Templates\UnityTypeContent.tt" this.Write(" "); #line default #line hidden #line 22 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.PascalCaseName)); #line default #line hidden #line 22 "Templates\UnityTypeContent.tt" this.Write(" = "); #line default #line hidden #line 22 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.CamelCaseName)); #line default #line hidden #line 22 "Templates\UnityTypeContent.tt" this.Write(";\r\n"); #line default #line hidden #line 23 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 24 "Templates\UnityTypeContent.tt" this.Write(" }\r\n"); #line default #line hidden #line 25 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 26 "Templates\UnityTypeContent.tt" this.Write("\r\n public static class Serialization\r\n {\r\n public static void Serial" + "ize("); #line default #line hidden #line 29 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(typeDetails.CapitalisedName)); #line default #line hidden #line 29 "Templates\UnityTypeContent.tt" this.Write(" instance, global::Improbable.Worker.Core.SchemaObject obj)\r\n {\r\n"); #line default #line hidden #line 31 "Templates\UnityTypeContent.tt" foreach (var fieldDetails in fieldDetailsList) { #line default #line hidden #line 32 "Templates\UnityTypeContent.tt" this.Write(" {\r\n "); #line default #line hidden #line 33 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.GetSerializationString("instance." + fieldDetails.PascalCaseName, "obj", 4))); #line default #line hidden #line 33 "Templates\UnityTypeContent.tt" this.Write("\r\n }\r\n"); #line default #line hidden #line 35 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 36 "Templates\UnityTypeContent.tt" this.Write(" }\r\n\r\n public static "); #line default #line hidden #line 38 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(typeDetails.CapitalisedName)); #line default #line hidden #line 38 "Templates\UnityTypeContent.tt" this.Write(" Deserialize(global::Improbable.Worker.Core.SchemaObject obj)\r\n {\r\n " + " var instance = new "); #line default #line hidden #line 40 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(typeDetails.CapitalisedName)); #line default #line hidden #line 40 "Templates\UnityTypeContent.tt" this.Write("();\r\n"); #line default #line hidden #line 41 "Templates\UnityTypeContent.tt" foreach (var fieldDetails in fieldDetailsList) { #line default #line hidden #line 42 "Templates\UnityTypeContent.tt" this.Write(" {\r\n "); #line default #line hidden #line 43 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(fieldDetails.GetDeserializeString("instance." + fieldDetails.PascalCaseName, "obj", 4))); #line default #line hidden #line 43 "Templates\UnityTypeContent.tt" this.Write("\r\n }\r\n"); #line default #line hidden #line 45 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 46 "Templates\UnityTypeContent.tt" this.Write(" return instance;\r\n }\r\n }\r\n"); #line default #line hidden #line 49 "Templates\UnityTypeContent.tt" var typeGenerator = new UnityTypeContent(); foreach (var nestedType in nestedTypes) { #line default #line hidden #line 54 "Templates\UnityTypeContent.tt" this.Write("\r\n "); #line default #line hidden #line 55 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(typeGenerator.Generate(nestedType, enumSet)))); #line default #line hidden #line 55 "Templates\UnityTypeContent.tt" this.Write("\r\n"); #line default #line hidden #line 56 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 57 "Templates\UnityTypeContent.tt" var enumGenerator = new UnityEnumContent(); foreach (var nestedEnum in nestedEnums) { #line default #line hidden #line 62 "Templates\UnityTypeContent.tt" this.Write("\r\n "); #line default #line hidden #line 63 "Templates\UnityTypeContent.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(enumGenerator.Generate(nestedEnum)))); #line default #line hidden #line 63 "Templates\UnityTypeContent.tt" this.Write("\r\n"); #line default #line hidden #line 64 "Templates\UnityTypeContent.tt" } #line default #line hidden #line 65 "Templates\UnityTypeContent.tt" this.Write("}\r\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 3 "Templates\UnityReferenceTypeProviderGenerator.tt" var fieldDetailsList = GetFieldDetailsList(); var eventDetailsList = GetEventDetailsList(); var componentDetails = GetComponentDetails(); var commandDetailsList = GetCommandDetailsList(); var generatedHeader = CommonGeneratorUtils.GetGeneratedHeader(); var generator = new UnityReferenceTypeProviderContent(); var componentNamespace = qualifiedNamespace + "." + componentDetails.ComponentName; #line default #line hidden #line 12 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(generatedHeader)); #line default #line hidden #line 12 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing I" + "mprobable.Gdk.Core;\r\n\r\nnamespace "); #line default #line hidden #line 19 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(qualifiedNamespace)); #line default #line hidden #line 19 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n{\r\n public partial class "); #line default #line hidden #line 21 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(componentDetails.ComponentName)); #line default #line hidden #line 21 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n {\r\n internal static class ReferenceTypeProviders\r\n {\r\n " + " "); #line default #line hidden #line 25 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate("Updates", $"List<{componentNamespace}.Update>"), 3))); #line default #line hidden #line 25 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n\r\n"); #line default #line hidden #line 27 "Templates\UnityReferenceTypeProviderGenerator.tt" foreach (var fieldDetails in fieldDetailsList) { #line default #line hidden #line 28 "Templates\UnityReferenceTypeProviderGenerator.tt" if (!fieldDetails.IsBlittable) { #line default #line hidden #line 29 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(" "); #line default #line hidden #line 29 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate(fieldDetails.PascalCaseName, fieldDetails.Type), 3))); #line default #line hidden #line 29 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n\r\n"); #line default #line hidden #line 31 "Templates\UnityReferenceTypeProviderGenerator.tt" } #line default #line hidden #line 32 "Templates\UnityReferenceTypeProviderGenerator.tt" } #line default #line hidden #line 33 "Templates\UnityReferenceTypeProviderGenerator.tt" foreach (var eventDetails in eventDetailsList) { #line default #line hidden #line 34 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(" "); #line default #line hidden #line 34 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate(eventDetails.EventName, $"List<{eventDetails.FqnPayloadType}>"), 3))); #line default #line hidden #line 34 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n"); #line default #line hidden #line 35 "Templates\UnityReferenceTypeProviderGenerator.tt" } #line default #line hidden #line 36 "Templates\UnityReferenceTypeProviderGenerator.tt" foreach (var commandDetails in commandDetailsList) { #line default #line hidden #line 37 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(" "); #line default #line hidden #line 37 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate($"{commandDetails.CommandName}Sender", $"List<{qualifiedNamespace}.{componentDetails.ComponentName}.{commandDetails.CommandName}.Request>"), 3))); #line default #line hidden #line 37 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n "); #line default #line hidden #line 38 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate($"{commandDetails.CommandName}Requests", $"List<{qualifiedNamespace}.{componentDetails.ComponentName}.{commandDetails.CommandName}.ReceivedRequest>"), 3))); #line default #line hidden #line 38 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n "); #line default #line hidden #line 39 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate($"{commandDetails.CommandName}Responder", $"List<{qualifiedNamespace}.{componentDetails.ComponentName}.{commandDetails.CommandName}.Response>"), 3))); #line default #line hidden #line 39 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n "); #line default #line hidden #line 40 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CommonGeneratorUtils.IndentEveryNewline(generator.Generate($"{commandDetails.CommandName}Responses", $"List<{qualifiedNamespace}.{componentDetails.ComponentName}.{commandDetails.CommandName}.ReceivedResponse>"), 3))); #line default #line hidden #line 40 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write("\r\n\r\n"); #line default #line hidden #line 42 "Templates\UnityReferenceTypeProviderGenerator.tt" } #line default #line hidden #line 43 "Templates\UnityReferenceTypeProviderGenerator.tt" this.Write(" }\r\n }\r\n}\r\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }