generate method
Implementation
String generate() {
final taskMap = <String, List<ClsItem>>{};
for (final item in items) {
final hashCls = item.hashCls;
if (taskMap.containsKey(hashCls)) {
taskMap[hashCls]!.add(item);
} else {
taskMap[hashCls] = [item];
}
}
final outMap = <String, String>{};
List<String> widgetList = [];
List<String> constructorList = [];
var index = 1;
taskMap.forEach((key, value) {
final constructor = "\$Div${index++}";
final item = value.first;
widgetList.add(WidgetGenerator(item, constructor).generate());
constructorList.add(constructor);
for (final item in value) {
outMap[item.srcCls] = constructor;
}
});
final widgetCode = widgetList.join("\n\n");
final output = StringBuffer();
output.writeln("// Generated by EasyDSL");
output.writeln("// Do Not Modify By Hand\n");
output.writeln(
"// ignore_for_file: unused_element, prefer_const_constructors");
output.writeln("part of '$partOfUri';\n");
// output.writeln(_genMapCode(outMap));
output.writeln(_genDivCode(constructorList, outMap));
// output.writeln(_genConstCode());
output.writeln(widgetCode);
return formatter.format(output.toString());
}