Line data Source code
1 : import 'package:analyzer/dart/element/element.dart'; 2 : 3 : import 'package:class_fields/domain/field.dart'; 4 : 5 : /// {@template class} 6 : /// The subject of the `Fields` annotation 7 : /// {@endtemplate} 8 : class Class { 9 : /// {@macro class} 10 1 : const Class({ 11 : required this.name, 12 : required this.fields, 13 : }); 14 : 15 : /// gets the class from the [ClassElement] 16 1 : factory Class.fromElement(ClassElement element) { 17 1 : final name = element.name; 18 2 : final fields = Field.fromElements(element.fields); 19 : 20 1 : return Class( 21 : name: name, 22 : fields: fields, 23 : ); 24 : } 25 : 26 : /// the name of the class 27 : final String name; 28 : 29 : /// the field names of the class 30 : final Iterable<Field> fields; 31 : }