write method

String write()

Implementation

String write() {
  StringBuffer body = StringBuffer();
  StringBuffer list = StringBuffer();
  for (int i = 0; i < entries.length; i++) {
    JobEntry entry = entries[i];
    String type = '${_prefix(entry.library)}.${entry.className}';
    list.writeln("JobCodec('${entry.name}', $type, _encode$i, _decode$i),");
    _writeEncode(body, entry, type, i);
    _writeDecode(body, entry, type, i);
  }
  StringBuffer out = StringBuffer()
    ..writeln('// GENERATED CODE - DO NOT MODIFY BY HAND')
    ..writeln('// Made by dox_queue. Run `dart run build_runner build`.')
    ..writeln('// ignore_for_file: type=lint')
    ..writeln()
    ..writeln("import 'package:dox_queue/dox_queue.dart';");
  for (MapEntry<String, String> import in _prefixes.entries) {
    out.writeln("import '${import.key}' as ${import.value};");
  }
  out
    ..writeln()
    ..writeln('/// Every `@Job()` class of the app.')
    ..writeln('/// Use it in `QueueConfig(jobs: jobRegistry)`.')
    ..writeln('const JobRegistry jobRegistry = JobRegistry(<JobCodec>[')
    ..write(list)
    ..writeln(']);')
    ..write(body);
  return out.toString();
}