import 'package:flutter_ast_core/flutter_ast_core.dart'; import 'analyzer.dart'; import 'comment.dart'; import 'index.dart'; extension ClauseDeclarationImplUtils on ClassDeclarationImpl { DartClass toDartClass(DartFile parent) { DartClass base = DartClass(name: this.name.toString()); final List fields = []; for (final item in this.childEntities.whereType()) { fields.add(item.toDartField()); } final List constructors = []; for (final item in this.childEntities.whereType()) { constructors.add(item.toDartConstructor(base)); } final List methods = []; for (final item in this.childEntities.whereType()) { methods.add(item.toDartMethod(base)); } final List comments = []; for (final item in this.childEntities.whereType()) { comments.add(item.toDartComment()); } return base.copyWith( isAbstract: this.abstractKeyword != null, extendsClause: this.extendsClause?.toString(), implementsClause: this.implementsClause?.toString(), withClause: this.withClause?.toString(), fields: fields, constructors: constructors, methods: methods, comments: comments, ); } }