withDataClassMetadata property

CustomType withDataClassMetadata

Add Annotation data to CustomType by generating the dataclass using generateDataClassFile and the using analyze to collect the annotations.

{@category generator}

Implementation

CustomType get withDataClassMetadata {
  final dataclass = generateDataClassFile();
  final result = analyze(fileContent: dataclass);
  final customs = result.childrenCustomTypes;
  final enums = result.childrenEnumTypes;
  final members = <TypeMember>[];
  final parent = result.parent! as CustomType;
  for (final member in parent.members) {
    members.add(TypeMember(
      name: member.name,
      annotations: member.annotations,
      type: member.type.normalizeType(enums, customs),
    ));
  }

  return CustomType(
    className: result.parent!.className,
    members: members,
  );
}