DictionaryModelType.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. using FlutterCodeGenerator.Helper;
  2. using System;
  3. using System.Collections.Generic;
  4. namespace FlutterCodeGenerator.ModelTypes
  5. {
  6. internal class DictionaryModelType : SimpleModelType
  7. {
  8. public List<ModelType> GenericArgumentModelTypeList;
  9. public DictionaryModelType(Type type, string name) : base(type, name)
  10. {
  11. GenericArgumentModelTypeList = new List<ModelType>();
  12. foreach (var argumentType in type.GetGenericArguments())
  13. {
  14. var modelType = ModelTypeGenerator.Create(argumentType, "");
  15. GenericArgumentModelTypeList.Add(modelType);
  16. }
  17. }
  18. public override string GetFlutterTypeName(bool isDefault = true, bool isGenericName = false, bool isSingle = false)
  19. {
  20. if (isDefault)
  21. {
  22. return "Map<" + GenericArgumentModelTypeList[0].GetFlutterTypeName() + "," + GenericArgumentModelTypeList[1].GetFlutterTypeName() + ">";
  23. }
  24. if (isSingle)
  25. {
  26. return "Map";
  27. }
  28. return "Map<" + GenericArgumentModelTypeList[0].GetFlutterTypeName() + "," + GenericArgumentModelTypeList[1].GetFlutterTypeName() + ">";
  29. }
  30. }
  31. }