buildAbstractClass function

void buildAbstractClass(
  1. ClassBuilder classDef, {
  2. required bool toJson,
  3. required bool toMap,
  4. required bool isData,
  5. required Iterable<FieldDefinition> sourceFields,
})

Implementation

void buildAbstractClass(
  ClassBuilder classDef, {
  required bool toJson,
  required bool toMap,
  required bool isData,
  required Iterable<FieldDefinition> sourceFields,
}) {
  classDef
    ..methods.addAll([
      if (toJson && !isData) Method((m) => m..name = 'relatedJson'),
      if (toMap && !isData)
        Method((m) => m
          ..name = 'toMap'
          ..returns = refer('Map<String, dynamic>')),
      for (var field in sourceFields) ...[
        Method((m) => m
          ..type = MethodType.getter
          ..name = field.mappedName
          ..returns = refer(field.nullSafeType)),
        Method((m) => m
          ..type = MethodType.setter
          ..requiredParameters.add(
            Parameter((p) => p
              ..name = field.mappedName
              ..type = refer(field.nullSafeType)),
          )
          ..name = field.mappedName),
      ],
    ]);
}