Line data Source code
1 : import 'package:enum_assist/src/generator_helpers/helper_core.dart'; 2 : import 'package:enum_assist/src/templates/description_extension_template.dart'; 3 : import 'package:enum_assist/src/templates/map_extension_template.dart'; 4 : import 'package:enum_assist/src/templates/maybe_map_extension_template.dart'; 5 : import 'package:enum_assist/src/templates/name_template.dart'; 6 : import 'package:enum_assist/src/templates/serialized_extension_template.dart'; 7 : 8 : /// A generator class for enum extensions 9 : abstract class ExtensionGeneratorHelper implements HelperCore { 10 : /// generates extensions code 11 0 : String generateExtensions(String Function() additionalExtensions) { 12 0 : final buffer = StringBuffer() 13 0 : ..writeln(''' 14 0 : /// Extensions for the enum $enumName''') 15 0 : ..writeln('extension ${enumName}X on $enumName {') 16 0 : ..writeln(MapTemplate(enumName, fieldNames).toString()) 17 0 : ..writeln(MaybeMapTemplate(enumName, fieldNames).toString()) 18 0 : ..writeln(NameTemplate(enumName, fields).toString()) 19 0 : ..writeln(DescriptionTemplate(enumName, fields).toString()); 20 : 21 0 : if (config.createJsonConv) { 22 0 : buffer.writeln(SerializedTemplate(enumName, fields).toString()); 23 : } 24 : 25 : buffer 26 0 : ..writeln(additionalExtensions()) 27 0 : ..writeln('}'); 28 : 29 0 : return buffer.toString(); 30 : } 31 : }