generateFieldsClass method

void generateFieldsClass(
  1. BuildContext ctx,
  2. LibraryBuilder file
)

Implementation

void generateFieldsClass(BuildContext ctx, LibraryBuilder file) {
  //log.fine('Generate serializer fields');

  file.body.add(Class((clazz) {
    clazz
      ..abstract = true
      ..name = '${ctx.modelClassNameRecase.pascalCase}Fields';

    clazz.fields.add(Field((b) {
      b
        ..static = true
        ..modifier = FieldModifier.constant
        ..type = TypeReference((b) => b
          ..symbol = 'List'
          ..types.add(refer('String')))
        ..name = 'allFields'
        ..assignment = literalConstList(
                ctx.fields.map((f) => refer(f.name)).toList(),
                refer('String'))
            .code;
    }));

    for (var field in ctx.fields) {
      clazz.fields.add(Field((b) {
        b
          ..static = true
          ..modifier = FieldModifier.constant
          ..type = Reference('String')
          ..name = field.name
          ..assignment = Code("'${ctx.resolveFieldName(field.name)}'");
      }));
    }
  }));
}