output method
Return resulting code, must be overridden.
Implementation
List<String> output(Map<String, Container> containers) {
return <String>[
if (importTypedData) "import 'dart:typed_data';",
"import 'package:packme/packme.dart';",
...(includes.keys.toList()..sort()).map((String filename) => "import '$filename' show ${includes[filename]!.join(', ')};"),
...enums.fold(<String>[], (Iterable<String> a, Enum b) => a.toList() + b.output()),
...objects.fold(<String>[], (Iterable<String> a, Object b) => a.toList() + b.output()),
...embedded.fold(<String>[], (Iterable<String> a, Object b) => a.toList() + b.output()),
...messages.fold(<String>[], (Iterable<String> a, Message b) => a.toList() + b.output()),
...requests.fold(<String>[], (Iterable<String> a, Request b) => a.toList() + b.output()),
if (messages.isNotEmpty || requests.isNotEmpty) ...<String>[
'',
'final Map<int, PackMeMessage Function()> ${validName(filename)}MessageFactory = <int, PackMeMessage Function()>{',
...messages.map((Message message) => '${message.id}: () => ${message.name}.\$empty(),'),
...requests.map((Request request) => '${request.id}: () => ${request.name}.\$empty(),'),
...requests.map((Request request) => '${request.responseId}: () => ${request.responseName}.\$empty(),'),
'};'
]
];
}