json_convert_content.dart 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. // ignore_for_file: non_constant_identifier_names
  2. // ignore_for_file: camel_case_types
  3. // ignore_for_file: prefer_single_quotes
  4. // This file is automatically generated. DO NOT EDIT, all your changes would be lost.
  5. import 'package:flutter/material.dart' show debugPrint;
  6. import 'package:domain/entity/response/attendance_entity.dart';
  7. import 'package:domain/entity/response/check_success_entity.dart';
  8. import 'package:domain/entity/response/hotel_info_entity.dart';
  9. import 'package:domain/entity/response/id_name_entity.dart';
  10. import 'package:domain/entity/response/job_list_applied_edit_entity.dart';
  11. import 'package:domain/entity/response/job_list_applied_info_entity.dart';
  12. import 'package:domain/entity/response/job_list_applied_staff_list_entity.dart';
  13. import 'package:domain/entity/response/job_list_applied_staff_search_entity.dart';
  14. import 'package:domain/entity/response/job_list_applied_work_flow_entity.dart';
  15. import 'package:domain/entity/response/job_list_detail_entity.dart';
  16. import 'package:domain/entity/response/job_list_entity.dart';
  17. import 'package:domain/entity/response/job_list_index_entity.dart';
  18. import 'package:domain/entity/response/job_list_remark_view_entity.dart';
  19. import 'package:domain/entity/response/labour_request_edit_index_entity.dart';
  20. import 'package:domain/entity/response/labour_request_index_entity.dart';
  21. import 'package:domain/entity/response/labour_request_list_entity.dart';
  22. import 'package:domain/entity/response/labour_request_work_flow_entity.dart';
  23. import 'package:domain/entity/response/staff_detail_entity.dart';
  24. import 'package:domain/entity/response/staff_labour_history_entity.dart';
  25. import 'package:domain/entity/response/staff_remark_history_entity.dart';
  26. import 'package:domain/entity/server_time.dart';
  27. JsonConvert jsonConvert = JsonConvert();
  28. typedef JsonConvertFunction<T> = T Function(Map<String, dynamic> json);
  29. typedef EnumConvertFunction<T> = T Function(String value);
  30. typedef ConvertExceptionHandler = void Function(Object error, StackTrace stackTrace);
  31. extension MapSafeExt<K, V> on Map<K, V> {
  32. T? getOrNull<T>(K? key) {
  33. if (!containsKey(key) || key == null) {
  34. return null;
  35. } else {
  36. return this[key] as T?;
  37. }
  38. }
  39. }
  40. class JsonConvert {
  41. static ConvertExceptionHandler? onError;
  42. JsonConvertClassCollection convertFuncMap = JsonConvertClassCollection();
  43. /// When you are in the development, to generate a new model class, hot-reload doesn't find new generation model class, you can build on MaterialApp method called jsonConvert. ReassembleConvertFuncMap (); This method only works in a development environment
  44. /// https://flutter.cn/docs/development/tools/hot-reload
  45. /// class MyApp extends StatelessWidget {
  46. /// const MyApp({Key? key})
  47. /// : super(key: key);
  48. ///
  49. /// @override
  50. /// Widget build(BuildContext context) {
  51. /// jsonConvert.reassembleConvertFuncMap();
  52. /// return MaterialApp();
  53. /// }
  54. /// }
  55. void reassembleConvertFuncMap() {
  56. bool isReleaseMode = const bool.fromEnvironment('dart.vm.product');
  57. if (!isReleaseMode) {
  58. convertFuncMap = JsonConvertClassCollection();
  59. }
  60. }
  61. T? convert<T>(dynamic value, {EnumConvertFunction? enumConvert}) {
  62. if (value == null) {
  63. return null;
  64. }
  65. if (value is T) {
  66. return value;
  67. }
  68. try {
  69. return _asT<T>(value, enumConvert: enumConvert);
  70. } catch (e, stackTrace) {
  71. debugPrint('asT<$T> $e $stackTrace');
  72. if (onError != null) {
  73. onError!(e, stackTrace);
  74. }
  75. return null;
  76. }
  77. }
  78. List<T?>? convertList<T>(List<dynamic>? value, {EnumConvertFunction? enumConvert}) {
  79. if (value == null) {
  80. return null;
  81. }
  82. try {
  83. return value.map((dynamic e) => _asT<T>(e, enumConvert: enumConvert)).toList();
  84. } catch (e, stackTrace) {
  85. debugPrint('asT<$T> $e $stackTrace');
  86. if (onError != null) {
  87. onError!(e, stackTrace);
  88. }
  89. return <T>[];
  90. }
  91. }
  92. List<T>? convertListNotNull<T>(dynamic value, {EnumConvertFunction? enumConvert}) {
  93. if (value == null) {
  94. return null;
  95. }
  96. try {
  97. return (value as List<dynamic>).map((dynamic e) => _asT<T>(e, enumConvert: enumConvert)!).toList();
  98. } catch (e, stackTrace) {
  99. debugPrint('asT<$T> $e $stackTrace');
  100. if (onError != null) {
  101. onError!(e, stackTrace);
  102. }
  103. return <T>[];
  104. }
  105. }
  106. T? _asT<T extends Object?>(dynamic value,
  107. {EnumConvertFunction? enumConvert}) {
  108. final String type = T.toString();
  109. final String valueS = value.toString();
  110. if (enumConvert != null) {
  111. return enumConvert(valueS) as T;
  112. } else if (type == "String") {
  113. return valueS as T;
  114. } else if (type == "int") {
  115. final int? intValue = int.tryParse(valueS);
  116. if (intValue == null) {
  117. return double.tryParse(valueS)?.toInt() as T?;
  118. } else {
  119. return intValue as T;
  120. }
  121. } else if (type == "double") {
  122. return double.parse(valueS) as T;
  123. } else if (type == "DateTime") {
  124. return DateTime.parse(valueS) as T;
  125. } else if (type == "bool") {
  126. if (valueS == '0' || valueS == '1') {
  127. return (valueS == '1') as T;
  128. }
  129. return (valueS == 'true') as T;
  130. } else if (type == "Map" || type.startsWith("Map<")) {
  131. return value as T;
  132. } else {
  133. if (convertFuncMap.containsKey(type)) {
  134. if (value == null) {
  135. return null;
  136. }
  137. return convertFuncMap[type]!(value as Map<String, dynamic>) as T;
  138. } else {
  139. throw UnimplementedError('$type unimplemented,you can try running the app again');
  140. }
  141. }
  142. }
  143. //list is returned by type
  144. static M? _getListChildType<M>(List<Map<String, dynamic>> data) {
  145. if (<AttendanceEntity>[] is M) {
  146. return data.map<AttendanceEntity>((Map<String, dynamic> e) => AttendanceEntity.fromJson(e)).toList() as M;
  147. }
  148. if (<AttendanceList>[] is M) {
  149. return data.map<AttendanceList>((Map<String, dynamic> e) => AttendanceList.fromJson(e)).toList() as M;
  150. }
  151. if (<CheckSuccessEntity>[] is M) {
  152. return data.map<CheckSuccessEntity>((Map<String, dynamic> e) => CheckSuccessEntity.fromJson(e)).toList() as M;
  153. }
  154. if (<HotelInfoEntity>[] is M) {
  155. return data.map<HotelInfoEntity>((Map<String, dynamic> e) => HotelInfoEntity.fromJson(e)).toList() as M;
  156. }
  157. if (<HotelInfoMenus>[] is M) {
  158. return data.map<HotelInfoMenus>((Map<String, dynamic> e) => HotelInfoMenus.fromJson(e)).toList() as M;
  159. }
  160. if (<HotelInfoMenusChildren>[] is M) {
  161. return data.map<HotelInfoMenusChildren>((Map<String, dynamic> e) => HotelInfoMenusChildren.fromJson(e)).toList() as M;
  162. }
  163. if (<IdNameEntity>[] is M) {
  164. return data.map<IdNameEntity>((Map<String, dynamic> e) => IdNameEntity.fromJson(e)).toList() as M;
  165. }
  166. if (<JobListAppliedEditEntity>[] is M) {
  167. return data.map<JobListAppliedEditEntity>((Map<String, dynamic> e) => JobListAppliedEditEntity.fromJson(e)).toList() as M;
  168. }
  169. if (<JobListAppliedEditReasonList>[] is M) {
  170. return data.map<JobListAppliedEditReasonList>((Map<String, dynamic> e) => JobListAppliedEditReasonList.fromJson(e)).toList() as M;
  171. }
  172. if (<JobListAppliedInfoEntity>[] is M) {
  173. return data.map<JobListAppliedInfoEntity>((Map<String, dynamic> e) => JobListAppliedInfoEntity.fromJson(e)).toList() as M;
  174. }
  175. if (<JobListAppliedStaffListEntity>[] is M) {
  176. return data.map<JobListAppliedStaffListEntity>((Map<String, dynamic> e) => JobListAppliedStaffListEntity.fromJson(e)).toList() as M;
  177. }
  178. if (<JobListAppliedStaffListRows>[] is M) {
  179. return data.map<JobListAppliedStaffListRows>((Map<String, dynamic> e) => JobListAppliedStaffListRows.fromJson(e)).toList() as M;
  180. }
  181. if (<JobListAppliedStaffListRowsSecurityIn>[] is M) {
  182. return data.map<JobListAppliedStaffListRowsSecurityIn>((Map<String, dynamic> e) => JobListAppliedStaffListRowsSecurityIn.fromJson(e)).toList() as M;
  183. }
  184. if (<JobListAppliedStaffListRowsSecurityOut>[] is M) {
  185. return data.map<JobListAppliedStaffListRowsSecurityOut>((Map<String, dynamic> e) => JobListAppliedStaffListRowsSecurityOut.fromJson(e)).toList() as M;
  186. }
  187. if (<JobListAppliedStaffListRowsWorkIn>[] is M) {
  188. return data.map<JobListAppliedStaffListRowsWorkIn>((Map<String, dynamic> e) => JobListAppliedStaffListRowsWorkIn.fromJson(e)).toList() as M;
  189. }
  190. if (<JobListAppliedStaffListRowsWorkOut>[] is M) {
  191. return data.map<JobListAppliedStaffListRowsWorkOut>((Map<String, dynamic> e) => JobListAppliedStaffListRowsWorkOut.fromJson(e)).toList() as M;
  192. }
  193. if (<JobListAppliedStaffSearchEntity>[] is M) {
  194. return data.map<JobListAppliedStaffSearchEntity>((Map<String, dynamic> e) => JobListAppliedStaffSearchEntity.fromJson(e)).toList() as M;
  195. }
  196. if (<JobListAppliedStaffSearchRows>[] is M) {
  197. return data.map<JobListAppliedStaffSearchRows>((Map<String, dynamic> e) => JobListAppliedStaffSearchRows.fromJson(e)).toList() as M;
  198. }
  199. if (<JobListAppliedWorkFlowEntity>[] is M) {
  200. return data.map<JobListAppliedWorkFlowEntity>((Map<String, dynamic> e) => JobListAppliedWorkFlowEntity.fromJson(e)).toList() as M;
  201. }
  202. if (<JobListAppliedWorkFlowRecords>[] is M) {
  203. return data.map<JobListAppliedWorkFlowRecords>((Map<String, dynamic> e) => JobListAppliedWorkFlowRecords.fromJson(e)).toList() as M;
  204. }
  205. if (<JobListDetailEntity>[] is M) {
  206. return data.map<JobListDetailEntity>((Map<String, dynamic> e) => JobListDetailEntity.fromJson(e)).toList() as M;
  207. }
  208. if (<JobListDetailDepartmentList>[] is M) {
  209. return data.map<JobListDetailDepartmentList>((Map<String, dynamic> e) => JobListDetailDepartmentList.fromJson(e)).toList() as M;
  210. }
  211. if (<JobListEntity>[] is M) {
  212. return data.map<JobListEntity>((Map<String, dynamic> e) => JobListEntity.fromJson(e)).toList() as M;
  213. }
  214. if (<JobListRows>[] is M) {
  215. return data.map<JobListRows>((Map<String, dynamic> e) => JobListRows.fromJson(e)).toList() as M;
  216. }
  217. if (<JobListIndexEntity>[] is M) {
  218. return data.map<JobListIndexEntity>((Map<String, dynamic> e) => JobListIndexEntity.fromJson(e)).toList() as M;
  219. }
  220. if (<JobListIndexDepartmentList>[] is M) {
  221. return data.map<JobListIndexDepartmentList>((Map<String, dynamic> e) => JobListIndexDepartmentList.fromJson(e)).toList() as M;
  222. }
  223. if (<JobListIndexStatusList>[] is M) {
  224. return data.map<JobListIndexStatusList>((Map<String, dynamic> e) => JobListIndexStatusList.fromJson(e)).toList() as M;
  225. }
  226. if (<JobListRemarkViewEntity>[] is M) {
  227. return data.map<JobListRemarkViewEntity>((Map<String, dynamic> e) => JobListRemarkViewEntity.fromJson(e)).toList() as M;
  228. }
  229. if (<LabourRequestEditIndexEntity>[] is M) {
  230. return data.map<LabourRequestEditIndexEntity>((Map<String, dynamic> e) => LabourRequestEditIndexEntity.fromJson(e)).toList() as M;
  231. }
  232. if (<LabourRequestEditIndexTemplateList>[] is M) {
  233. return data.map<LabourRequestEditIndexTemplateList>((Map<String, dynamic> e) => LabourRequestEditIndexTemplateList.fromJson(e)).toList() as M;
  234. }
  235. if (<LabourRequestEditIndexDepartmentList>[] is M) {
  236. return data.map<LabourRequestEditIndexDepartmentList>((Map<String, dynamic> e) => LabourRequestEditIndexDepartmentList.fromJson(e)).toList() as M;
  237. }
  238. if (<LabourRequestIndexEntity>[] is M) {
  239. return data.map<LabourRequestIndexEntity>((Map<String, dynamic> e) => LabourRequestIndexEntity.fromJson(e)).toList() as M;
  240. }
  241. if (<LabourRequestIndexDepartmentList>[] is M) {
  242. return data.map<LabourRequestIndexDepartmentList>((Map<String, dynamic> e) => LabourRequestIndexDepartmentList.fromJson(e)).toList() as M;
  243. }
  244. if (<LabourRequestIndexStatusList>[] is M) {
  245. return data.map<LabourRequestIndexStatusList>((Map<String, dynamic> e) => LabourRequestIndexStatusList.fromJson(e)).toList() as M;
  246. }
  247. if (<LabourRequestListEntity>[] is M) {
  248. return data.map<LabourRequestListEntity>((Map<String, dynamic> e) => LabourRequestListEntity.fromJson(e)).toList() as M;
  249. }
  250. if (<LabourRequestListRows>[] is M) {
  251. return data.map<LabourRequestListRows>((Map<String, dynamic> e) => LabourRequestListRows.fromJson(e)).toList() as M;
  252. }
  253. if (<LabourRequestWorkFlowEntity>[] is M) {
  254. return data.map<LabourRequestWorkFlowEntity>((Map<String, dynamic> e) => LabourRequestWorkFlowEntity.fromJson(e)).toList() as M;
  255. }
  256. if (<LabourRequestWorkFlowRecords>[] is M) {
  257. return data.map<LabourRequestWorkFlowRecords>((Map<String, dynamic> e) => LabourRequestWorkFlowRecords.fromJson(e)).toList() as M;
  258. }
  259. if (<StaffDetailEntity>[] is M) {
  260. return data.map<StaffDetailEntity>((Map<String, dynamic> e) => StaffDetailEntity.fromJson(e)).toList() as M;
  261. }
  262. if (<StaffLabourHistoryEntity>[] is M) {
  263. return data.map<StaffLabourHistoryEntity>((Map<String, dynamic> e) => StaffLabourHistoryEntity.fromJson(e)).toList() as M;
  264. }
  265. if (<StaffLabourHistoryRows>[] is M) {
  266. return data.map<StaffLabourHistoryRows>((Map<String, dynamic> e) => StaffLabourHistoryRows.fromJson(e)).toList() as M;
  267. }
  268. if (<StaffLabourHistoryRowsSecurityIn>[] is M) {
  269. return data.map<StaffLabourHistoryRowsSecurityIn>((Map<String, dynamic> e) => StaffLabourHistoryRowsSecurityIn.fromJson(e)).toList() as M;
  270. }
  271. if (<StaffLabourHistoryRowsSecurityOut>[] is M) {
  272. return data.map<StaffLabourHistoryRowsSecurityOut>((Map<String, dynamic> e) => StaffLabourHistoryRowsSecurityOut.fromJson(e)).toList() as M;
  273. }
  274. if (<StaffLabourHistoryRowsWorkIn>[] is M) {
  275. return data.map<StaffLabourHistoryRowsWorkIn>((Map<String, dynamic> e) => StaffLabourHistoryRowsWorkIn.fromJson(e)).toList() as M;
  276. }
  277. if (<StaffLabourHistoryRowsWorkOut>[] is M) {
  278. return data.map<StaffLabourHistoryRowsWorkOut>((Map<String, dynamic> e) => StaffLabourHistoryRowsWorkOut.fromJson(e)).toList() as M;
  279. }
  280. if (<StaffRemarkHistoryEntity>[] is M) {
  281. return data.map<StaffRemarkHistoryEntity>((Map<String, dynamic> e) => StaffRemarkHistoryEntity.fromJson(e)).toList() as M;
  282. }
  283. if (<StaffRemarkHistoryRows>[] is M) {
  284. return data.map<StaffRemarkHistoryRows>((Map<String, dynamic> e) => StaffRemarkHistoryRows.fromJson(e)).toList() as M;
  285. }
  286. if (<ServerTime>[] is M) {
  287. return data.map<ServerTime>((Map<String, dynamic> e) => ServerTime.fromJson(e)).toList() as M;
  288. }
  289. debugPrint("$M not found");
  290. return null;
  291. }
  292. static M? fromJsonAsT<M>(dynamic json) {
  293. if (json is M) {
  294. return json;
  295. }
  296. if (json is List) {
  297. return _getListChildType<M>(json.map((dynamic e) => e as Map<String, dynamic>).toList());
  298. } else {
  299. return jsonConvert.convert<M>(json);
  300. }
  301. }
  302. }
  303. class JsonConvertClassCollection {
  304. Map<String, JsonConvertFunction> convertFuncMap = {
  305. (AttendanceEntity).toString(): AttendanceEntity.fromJson,
  306. (AttendanceList).toString(): AttendanceList.fromJson,
  307. (CheckSuccessEntity).toString(): CheckSuccessEntity.fromJson,
  308. (HotelInfoEntity).toString(): HotelInfoEntity.fromJson,
  309. (HotelInfoMenus).toString(): HotelInfoMenus.fromJson,
  310. (HotelInfoMenusChildren).toString(): HotelInfoMenusChildren.fromJson,
  311. (IdNameEntity).toString(): IdNameEntity.fromJson,
  312. (JobListAppliedEditEntity).toString(): JobListAppliedEditEntity.fromJson,
  313. (JobListAppliedEditReasonList).toString(): JobListAppliedEditReasonList.fromJson,
  314. (JobListAppliedInfoEntity).toString(): JobListAppliedInfoEntity.fromJson,
  315. (JobListAppliedStaffListEntity).toString(): JobListAppliedStaffListEntity.fromJson,
  316. (JobListAppliedStaffListRows).toString(): JobListAppliedStaffListRows.fromJson,
  317. (JobListAppliedStaffListRowsSecurityIn).toString(): JobListAppliedStaffListRowsSecurityIn.fromJson,
  318. (JobListAppliedStaffListRowsSecurityOut).toString(): JobListAppliedStaffListRowsSecurityOut.fromJson,
  319. (JobListAppliedStaffListRowsWorkIn).toString(): JobListAppliedStaffListRowsWorkIn.fromJson,
  320. (JobListAppliedStaffListRowsWorkOut).toString(): JobListAppliedStaffListRowsWorkOut.fromJson,
  321. (JobListAppliedStaffSearchEntity).toString(): JobListAppliedStaffSearchEntity.fromJson,
  322. (JobListAppliedStaffSearchRows).toString(): JobListAppliedStaffSearchRows.fromJson,
  323. (JobListAppliedWorkFlowEntity).toString(): JobListAppliedWorkFlowEntity.fromJson,
  324. (JobListAppliedWorkFlowRecords).toString(): JobListAppliedWorkFlowRecords.fromJson,
  325. (JobListDetailEntity).toString(): JobListDetailEntity.fromJson,
  326. (JobListDetailDepartmentList).toString(): JobListDetailDepartmentList.fromJson,
  327. (JobListEntity).toString(): JobListEntity.fromJson,
  328. (JobListRows).toString(): JobListRows.fromJson,
  329. (JobListIndexEntity).toString(): JobListIndexEntity.fromJson,
  330. (JobListIndexDepartmentList).toString(): JobListIndexDepartmentList.fromJson,
  331. (JobListIndexStatusList).toString(): JobListIndexStatusList.fromJson,
  332. (JobListRemarkViewEntity).toString(): JobListRemarkViewEntity.fromJson,
  333. (LabourRequestEditIndexEntity).toString(): LabourRequestEditIndexEntity.fromJson,
  334. (LabourRequestEditIndexTemplateList).toString(): LabourRequestEditIndexTemplateList.fromJson,
  335. (LabourRequestEditIndexDepartmentList).toString(): LabourRequestEditIndexDepartmentList.fromJson,
  336. (LabourRequestIndexEntity).toString(): LabourRequestIndexEntity.fromJson,
  337. (LabourRequestIndexDepartmentList).toString(): LabourRequestIndexDepartmentList.fromJson,
  338. (LabourRequestIndexStatusList).toString(): LabourRequestIndexStatusList.fromJson,
  339. (LabourRequestListEntity).toString(): LabourRequestListEntity.fromJson,
  340. (LabourRequestListRows).toString(): LabourRequestListRows.fromJson,
  341. (LabourRequestWorkFlowEntity).toString(): LabourRequestWorkFlowEntity.fromJson,
  342. (LabourRequestWorkFlowRecords).toString(): LabourRequestWorkFlowRecords.fromJson,
  343. (StaffDetailEntity).toString(): StaffDetailEntity.fromJson,
  344. (StaffLabourHistoryEntity).toString(): StaffLabourHistoryEntity.fromJson,
  345. (StaffLabourHistoryRows).toString(): StaffLabourHistoryRows.fromJson,
  346. (StaffLabourHistoryRowsSecurityIn).toString(): StaffLabourHistoryRowsSecurityIn.fromJson,
  347. (StaffLabourHistoryRowsSecurityOut).toString(): StaffLabourHistoryRowsSecurityOut.fromJson,
  348. (StaffLabourHistoryRowsWorkIn).toString(): StaffLabourHistoryRowsWorkIn.fromJson,
  349. (StaffLabourHistoryRowsWorkOut).toString(): StaffLabourHistoryRowsWorkOut.fromJson,
  350. (StaffRemarkHistoryEntity).toString(): StaffRemarkHistoryEntity.fromJson,
  351. (StaffRemarkHistoryRows).toString(): StaffRemarkHistoryRows.fromJson,
  352. (ServerTime).toString(): ServerTime.fromJson,
  353. };
  354. bool containsKey(String type) {
  355. return convertFuncMap.containsKey(type);
  356. }
  357. JsonConvertFunction? operator [](String key) {
  358. return convertFuncMap[key];
  359. }
  360. }