withDataClassMetadata method
Add Annotation data to CustomType by generating the dataclass using generateDataClassFile and the using analyze to collect the annotations.
{@category generator}
Implementation
CustomType withDataClassMetadata() {
final dataclass = generateDataClassFile();
final result = analyze(fileContent: dataclass);
final parent = result.parent! as CustomType;
final parentMembersCopy = <TypeMember>[];
for (final member in members) {
final annotations = parent.members
.where((annotatedMember) => annotatedMember.name == member.name)
.firstOrNull
?.annotations ??
[];
parentMembersCopy.add(TypeMember(
name: member.name,
annotations: annotations,
type: member.type,
));
}
return CustomType(
className: result.parent!.className,
members: parentMembersCopy,
);
}