|
@@ -1,5 +1,6 @@
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
using System.Text;
|
|
|
|
|
|
namespace FlutterCodeGenerator
|
|
@@ -85,6 +86,19 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public class ByteModelType : SimpleModelType
|
|
|
+ {
|
|
|
+ public ByteModelType(string name) : base(typeof(byte), name)
|
|
|
+ {
|
|
|
+ DefaultValue = "0";
|
|
|
+ }
|
|
|
+
|
|
|
+ public override string GetFlutterTypeName(bool isDefault = true, bool isGenericName = false, bool isSingle = false)
|
|
|
+ {
|
|
|
+ return "int";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public class DoubleModeType : SimpleModelType
|
|
|
{
|
|
|
public DoubleModeType(string name) : base(typeof(int), name)
|
|
@@ -111,6 +125,13 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public class ExtraObjectModelType : SimpleModelType
|
|
|
+ {
|
|
|
+ public ExtraObjectModelType(Type type, string name) : base(type, name)
|
|
|
+ {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public class ComplexModelType : ModelType
|
|
|
{
|
|
|
public List<ModelType> Children { get; set; }
|
|
@@ -120,7 +141,7 @@ namespace FlutterCodeGenerator
|
|
|
Children = new List<ModelType>();
|
|
|
}
|
|
|
|
|
|
- protected string ToJson(List<ModelType> Children)
|
|
|
+ protected virtual string ToJson(List<ModelType> Children)
|
|
|
{
|
|
|
var source = new StringBuilder();
|
|
|
source.AppendLine("\tMap<String, dynamic> toJson() {");
|
|
@@ -135,6 +156,11 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
source.AppendLine($"\t\tmap['{child.Name_Upper}'] = {child.Name_Lower};");
|
|
|
}
|
|
|
+ else if (child is DateTimeModeType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tif({child.Name_Lower} != null)");
|
|
|
+ source.AppendLine($"\t\t\tmap['{child.Name_Upper}'] = JsonRpcUtils.dateFormat({child.Name_Lower}!);");
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
source.AppendLine($"\t\tif({child.Name_Lower} != null)");
|
|
@@ -146,11 +172,11 @@ namespace FlutterCodeGenerator
|
|
|
return source.ToString();
|
|
|
}
|
|
|
|
|
|
- protected string FromJson(List<ModelType> Children)
|
|
|
+ protected virtual string FromJson(List<ModelType> Children)
|
|
|
{
|
|
|
var source = new StringBuilder();
|
|
|
string flutterTypeName = null;
|
|
|
- if (this is UserDefinedGenericComplexModelType)
|
|
|
+ if (this is UserDefinedGenericModelType)
|
|
|
{
|
|
|
flutterTypeName = GetFlutterTypeName(false, false, true);
|
|
|
}
|
|
@@ -168,7 +194,7 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
else if (child is ListModelType listModelType)
|
|
|
{
|
|
|
- if (this is UserDefinedGenericComplexModelType type)
|
|
|
+ if (this is UserDefinedGenericModelType type)
|
|
|
{
|
|
|
if (type.GenericArgumentModelType.ParameterType == listModelType.GenericArgumentModelType.ParameterType)
|
|
|
{
|
|
@@ -179,10 +205,21 @@ namespace FlutterCodeGenerator
|
|
|
source.AppendLine($"\t\t}}");
|
|
|
}
|
|
|
}
|
|
|
+ else if (this is UserDefinedDerivedModelType derivedModelType && derivedModelType.BaseType is UserDefinedGenericModelType baseType)
|
|
|
+ {
|
|
|
+ if (baseType.GenericArgumentModelType.ParameterType == listModelType.GenericArgumentModelType.ParameterType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tList<{listModelType.GenericArgumentModelType.GetFlutterTypeName()}> {listModelType.Name_Lower}List = [];");
|
|
|
+ source.AppendLine($"\t\tif (map['{listModelType.Name_Upper}'] != null) {{");
|
|
|
+ source.AppendLine($"\t\t\t{listModelType.Name_Lower}List.addAll(");
|
|
|
+ source.AppendLine($"\t\t\t\t\t(map['{listModelType.Name_Upper}'] as List).map((e) => FJsonConvert.fromJson<{listModelType.GenericArgumentModelType.GetFlutterTypeName()}>(e)!));");
|
|
|
+ source.AppendLine($"\t\t}}");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- else if (child is UserDefinedGenericComplexModelType userDefinedGenericComplexModelType)
|
|
|
+ else if (child is UserDefinedGenericModelType userDefinedGenericComplexModelType)
|
|
|
{
|
|
|
- if (this is UserDefinedGenericComplexModelType type)
|
|
|
+ if (this is UserDefinedGenericModelType type)
|
|
|
{
|
|
|
if (type.GenericArgumentModelType.ParameterType == userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType)
|
|
|
{
|
|
@@ -192,6 +229,17 @@ namespace FlutterCodeGenerator
|
|
|
source.AppendLine($"\t\t\t\t\t(map['{userDefinedGenericComplexModelType.Name_Upper}'] as List).map((e) => FJsonConvert.fromJson<T>(e)!));");
|
|
|
source.AppendLine($"\t\t}}");
|
|
|
}
|
|
|
+ else if (this is UserDefinedDerivedModelType derivedModelType && derivedModelType.BaseType is UserDefinedGenericModelType baseType)
|
|
|
+ {
|
|
|
+ if (baseType.GenericArgumentModelType.ParameterType == userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tList<{userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType}> {userDefinedGenericComplexModelType.Name_Lower}List = [];");
|
|
|
+ source.AppendLine($"\t\tif (map['{userDefinedGenericComplexModelType.Name_Upper}'] != null) {{");
|
|
|
+ source.AppendLine($"\t\t\t{userDefinedGenericComplexModelType.Name_Lower}List.addAll(");
|
|
|
+ source.AppendLine($"\t\t\t\t\t(map['{userDefinedGenericComplexModelType.Name_Upper}'] as List).map((e) => FJsonConvert.fromJson<{userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType}>(e)!));");
|
|
|
+ source.AppendLine($"\t\t}}");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -204,17 +252,20 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
else if (child is ArrayModelType)
|
|
|
{
|
|
|
-
|
|
|
var arrayTypeName = child.ParameterType.FullName.Replace("[]", string.Empty);
|
|
|
var arrayType = child.ParameterType.Assembly.GetType(arrayTypeName);
|
|
|
var modelType = ModelTypeGenerator.Create(arrayType, "");
|
|
|
- if (modelType is SimpleModelType)
|
|
|
+ if (modelType is ByteModelType)
|
|
|
{
|
|
|
- source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => e as {child.ParameterType.Name.Replace("[]", string.Empty)}).toList(): const [],");
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => e as int).toList(): null,");
|
|
|
+ }
|
|
|
+ else if (modelType is SimpleModelType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => e as {child.ParameterType.Name.Replace("[]", string.Empty)}).toList(): null,");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => {child.ParameterType.Name.Replace("[]", string.Empty)}.fromJson(e)).toList(): const [],");
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => {child.ParameterType.Name.Replace("[]", string.Empty)}.fromJson(e)).toList(): null,");
|
|
|
}
|
|
|
}
|
|
|
else if (child is DateTimeModeType)
|
|
@@ -223,7 +274,7 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
else if (child is ListModelType listModelType)
|
|
|
{
|
|
|
- if (this is UserDefinedGenericComplexModelType type)
|
|
|
+ if (this is UserDefinedGenericModelType type)
|
|
|
{
|
|
|
if (type.GenericArgumentModelType.ParameterType == listModelType.GenericArgumentModelType.ParameterType)
|
|
|
{
|
|
@@ -240,7 +291,24 @@ namespace FlutterCodeGenerator
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'].map((e)=>{model}.fromJson(e as Map<String,dynamic>)).toList(),");
|
|
|
}
|
|
|
}
|
|
|
- else if (this is UserDefinedComplexModeType)
|
|
|
+ else if (this is UserDefinedDerivedModelType definedDerivedModelType && definedDerivedModelType.BaseType is UserDefinedGenericModelType baseType)
|
|
|
+ {
|
|
|
+ if (baseType.GenericArgumentModelType.ParameterType == listModelType.GenericArgumentModelType.ParameterType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: {listModelType.Name_Lower}List,");
|
|
|
+ }
|
|
|
+ else if (listModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ {
|
|
|
+ var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'].cast<{model}>().toList(),");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
+ source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'].map((e)=>{model}.fromJson(e as Map<String,dynamic>)).toList(),");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (this is UserDefinedModeType || this is UserDefinedDerivedModelType)
|
|
|
{
|
|
|
if (listModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
{
|
|
@@ -260,9 +328,9 @@ namespace FlutterCodeGenerator
|
|
|
var argumentName2 = dictionaryModelType.GenericArgumentModelTypeList[1].GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'].cast<{argumentName1},{argumentName2}>(),");
|
|
|
}
|
|
|
- else if (child is UserDefinedGenericComplexModelType userDefinedGenericComplexModelType)
|
|
|
+ else if (child is UserDefinedGenericModelType userDefinedGenericComplexModelType)
|
|
|
{
|
|
|
- if (this is UserDefinedGenericComplexModelType type)
|
|
|
+ if (this is UserDefinedGenericModelType type)
|
|
|
{
|
|
|
if (type.GenericArgumentModelType.ParameterType == userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType)
|
|
|
{
|
|
@@ -279,7 +347,7 @@ namespace FlutterCodeGenerator
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'].map((e)=>{model}.fromJson(e as Map<String,dynamic>)).toList(),");
|
|
|
}
|
|
|
}
|
|
|
- else if (this is UserDefinedComplexModeType)
|
|
|
+ else if (this is UserDefinedModeType)
|
|
|
{
|
|
|
if (userDefinedGenericComplexModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
{
|
|
@@ -328,16 +396,18 @@ namespace FlutterCodeGenerator
|
|
|
|
|
|
public class ArrayModelType : SimpleModelType
|
|
|
{
|
|
|
+ public ModelType Child;
|
|
|
public ArrayModelType(Type type, string name) : base(type, name)
|
|
|
{
|
|
|
var arrayTypeName = ParameterType.FullName.Replace("[]", string.Empty);
|
|
|
var arrayType = ParameterType.Assembly.GetType(arrayTypeName);
|
|
|
- ModelTypeGenerator.Create(arrayType, "");
|
|
|
+ Child = ModelTypeGenerator.Create(arrayType, "");
|
|
|
}
|
|
|
|
|
|
public override string GetFlutterTypeName(bool isDefault = true, bool isGenericName = false, bool isSingle = false)
|
|
|
{
|
|
|
- return $"List<{ParameterType.Name[0..^2]}>";
|
|
|
+ var parameterTypeName = Child.GetFlutterTypeName();
|
|
|
+ return $"List<{parameterTypeName}>";
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -408,11 +478,11 @@ namespace FlutterCodeGenerator
|
|
|
|
|
|
|
|
|
|
|
|
- public class UserDefinedGenericComplexModelType : ComplexModelType
|
|
|
+ public class UserDefinedGenericModelType : ComplexModelType
|
|
|
{
|
|
|
public ModelType GenericArgumentModelType;
|
|
|
|
|
|
- public UserDefinedGenericComplexModelType(Type type, string name) : base(type, name)
|
|
|
+ public UserDefinedGenericModelType(Type type, string name) : base(type, name)
|
|
|
{
|
|
|
var properties = type.GetProperties();
|
|
|
foreach (var property in properties)
|
|
@@ -456,7 +526,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
argumentName = GenericArgumentModelType.ParameterType == listModelType.GenericArgumentModelType.ParameterType ? listModelType.GetFlutterTypeName(false, true) : listModelType.GetFlutterTypeName();
|
|
|
}
|
|
|
- else if (child is UserDefinedGenericComplexModelType userDefinedGenericComplexModelType)
|
|
|
+ else if (child is UserDefinedGenericModelType userDefinedGenericComplexModelType)
|
|
|
{
|
|
|
argumentName = GenericArgumentModelType.ParameterType == userDefinedGenericComplexModelType.GenericArgumentModelType.ParameterType ? userDefinedGenericComplexModelType.GetFlutterTypeName(false, true) : userDefinedGenericComplexModelType.GetFlutterTypeName();
|
|
|
}
|
|
@@ -472,7 +542,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
if (child.DefaultValue != null)
|
|
|
{
|
|
|
- dartString.AppendLine($"\t\tthis.{child.Name_Lower}={child.DefaultValue},");
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower} = {child.DefaultValue},");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -488,9 +558,9 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public class UserDefinedComplexModeType : ComplexModelType
|
|
|
+ public class UserDefinedModeType : ComplexModelType
|
|
|
{
|
|
|
- public UserDefinedComplexModeType(Type type, string name) : base(type, name)
|
|
|
+ public UserDefinedModeType(Type type, string name) : base(type, name)
|
|
|
{
|
|
|
var properties = type.GetProperties();
|
|
|
foreach (var property in properties)
|
|
@@ -512,7 +582,7 @@ namespace FlutterCodeGenerator
|
|
|
foreach (var child in Children)
|
|
|
{
|
|
|
var questionMark = QuestionMarkCheck(child);
|
|
|
- if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericComplexModelType)
|
|
|
+ if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericModelType)
|
|
|
{
|
|
|
dartString.AppendLine($"\t{child.GetFlutterTypeName(false, false)}{questionMark} {child.Name_Lower};");
|
|
|
}
|
|
@@ -527,7 +597,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
if (child.DefaultValue != null)
|
|
|
{
|
|
|
- dartString.AppendLine($"\t\tthis.{child.Name_Lower}={child.DefaultValue},");
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower} = {child.DefaultValue},");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -543,4 +613,178 @@ namespace FlutterCodeGenerator
|
|
|
return dartString.ToString();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public class UserDefinedDerivedModelType : ComplexModelType
|
|
|
+ {
|
|
|
+ public ModelType BaseType;
|
|
|
+
|
|
|
+ public UserDefinedDerivedModelType(Type type, string name) : base(type, name)
|
|
|
+ {
|
|
|
+ BaseType = ModelTypeGenerator.Create(type.BaseType, "");
|
|
|
+ var properties = type.GetProperties();
|
|
|
+ foreach (var property in properties)
|
|
|
+ {
|
|
|
+ var child = ModelTypeGenerator.Create(property.PropertyType, property.Name);
|
|
|
+ Children.Add(child);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public override string GetFlutterTypeName(bool isDefault = true, bool isGenericName = false, bool isSingle = false)
|
|
|
+ {
|
|
|
+ return $"{ParameterType.Name}";
|
|
|
+ }
|
|
|
+
|
|
|
+ public override string GetDartString()
|
|
|
+ {
|
|
|
+ var dartString = new StringBuilder();
|
|
|
+ dartString.AppendLine($"class {GetFlutterTypeName()} extends {BaseType.GetFlutterTypeName()}{{");
|
|
|
+ var baseType = BaseType as ComplexModelType;
|
|
|
+ foreach (var child in Children)
|
|
|
+ {
|
|
|
+ if (baseType != null)
|
|
|
+ {
|
|
|
+ if (!baseType.Children.Any(x => x.ParameterType == child.ParameterType && x.Name_Upper == child.Name_Upper))
|
|
|
+ {
|
|
|
+ var questionMark = QuestionMarkCheck(child);
|
|
|
+ if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericModelType)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t{child.GetFlutterTypeName(false, false)}{questionMark} {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t{child.GetFlutterTypeName()}{questionMark} {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var questionMark = QuestionMarkCheck(child);
|
|
|
+ if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericModelType)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t{child.GetFlutterTypeName(false, false)}{questionMark} {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t{child.GetFlutterTypeName()}{questionMark} {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dartString.AppendLine();
|
|
|
+ dartString.AppendLine($"\t{GetFlutterTypeName()}({{");
|
|
|
+ foreach (var child in Children)
|
|
|
+ {
|
|
|
+ if (baseType != null)
|
|
|
+ {
|
|
|
+ if (baseType.Children.Any(x => x.ParameterType == child.ParameterType && x.Name_Upper == child.Name_Upper))
|
|
|
+ {
|
|
|
+ var questionMark = QuestionMarkCheck(child);
|
|
|
+ if (child.DefaultValue != null)
|
|
|
+ {
|
|
|
+ if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericModelType)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\t{child.GetFlutterTypeName(false, false)}{questionMark} {child.Name_Lower} = {child.DefaultValue},");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\t{child.GetFlutterTypeName()}{questionMark} {child.Name_Lower} = {child.DefaultValue},");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (child is ListModelType || child is DictionaryModelType || child is UserDefinedGenericModelType)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\t{child.GetFlutterTypeName(false, false)}{questionMark} {child.Name_Lower},");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\t{child.GetFlutterTypeName()}{questionMark} {child.Name_Lower},");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (child.DefaultValue != null)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower} = {child.DefaultValue},");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower},");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (child.DefaultValue != null)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower} = {child.DefaultValue},");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\tthis.{child.Name_Lower},");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (baseType != null)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t}}) : super(");
|
|
|
+ foreach (var child in baseType.Children)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower},");
|
|
|
+ }
|
|
|
+ dartString.AppendLine($"\t\t);");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dartString.AppendLine("\t});");
|
|
|
+ }
|
|
|
+
|
|
|
+ dartString.AppendLine();
|
|
|
+ dartString.Append(FromJson(Children));
|
|
|
+ dartString.Append(ToJson(Children));
|
|
|
+ dartString.AppendLine("}");
|
|
|
+ return dartString.ToString();
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override string ToJson(List<ModelType> Children)
|
|
|
+ {
|
|
|
+ var source = new StringBuilder();
|
|
|
+ source.AppendLine("\tMap<String, dynamic> toJson() {");
|
|
|
+ source.AppendLine("\t\tfinal map = super.toJson();");
|
|
|
+ foreach (var child in Children)
|
|
|
+ {
|
|
|
+ if (BaseType is ComplexModelType complexModelType)
|
|
|
+ {
|
|
|
+ if (!complexModelType.Children.Any(x => x.ParameterType == child.ParameterType && x.Name_Upper == child.Name_Upper))
|
|
|
+ {
|
|
|
+ if (child is EnumModeType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tmap['{child.Name_Upper}'] = {child.Name_Lower}.index;");
|
|
|
+ }
|
|
|
+ else if (child.DefaultValue != null)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tmap['{child.Name_Upper}'] = {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ else if (child is DateTimeModeType)
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tif({child.Name_Lower} != null)");
|
|
|
+ source.AppendLine($"\t\t\tmap['{child.Name_Upper}'] = JsonRpcUtils.dateFormat({child.Name_Lower}!);");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ source.AppendLine($"\t\tif({child.Name_Lower} != null)");
|
|
|
+ source.AppendLine($"\t\t\tmap['{child.Name_Upper}'] = {child.Name_Lower};");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ source.AppendLine("\t\treturn map;");
|
|
|
+ source.AppendLine("\t}");
|
|
|
+ return source.ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|