11import 'package:analyzer/dart/element/element2.dart' ;
22import 'package:analyzer/dart/element/type.dart' ;
33import 'package:build/build.dart' ;
4- import 'package:dart_mappable/dart_mappable.dart' show GenerateMethods, InitializerScope;
4+ import 'package:dart_mappable/dart_mappable.dart'
5+ show GenerateMethods, InitializerScope;
56import 'package:glob/glob.dart' ;
67import 'package:path/path.dart' ;
78
@@ -49,7 +50,8 @@ class MapperElementGroup {
4950 return targets[e];
5051 }
5152
52- Future <MapperElement ?> getOrAddMapperForElement (Element2 ? e, {bool orNone = false }) async {
53+ Future <MapperElement ?> getOrAddMapperForElement (Element2 ? e,
54+ {bool orNone = false }) async {
5355 if (e == null || e.isPrivate) {
5456 return null ;
5557 }
@@ -60,41 +62,55 @@ class MapperElementGroup {
6062 if (e is ClassElement2 ) {
6163 if (classChecker.hasAnnotationOf (e)) {
6264 if (e.library2 == library) {
63- var m = await _addMapper (await TargetClassMapperElement .from (this , e, options));
65+ var m = await _addMapper (
66+ await TargetClassMapperElement .from (this , e, options));
6467
6568 for (var c in e.constructors2) {
66- if (c.isFactory && c.redirectedConstructor2 != null && classChecker.hasAnnotationOf (c)) {
69+ if (c.isFactory &&
70+ c.redirectedConstructor2 != null &&
71+ classChecker.hasAnnotationOf (c)) {
6772 // Disable copy methods for factory elements.
6873 var subOptions = options.apply (MappableOptions (
69- generateMethods: ~ (~ (options.generateMethods ?? GenerateMethods .all) | GenerateMethods .copy)));
74+ generateMethods:
75+ ~ (~ (options.generateMethods ?? GenerateMethods .all) |
76+ GenerateMethods .copy)));
7077
71- await _addMapper (await FactoryConstructorMapperElement .from (this , c, subOptions));
78+ await _addMapper (await FactoryConstructorMapperElement .from (
79+ this , c, subOptions));
7280 }
7381 }
7482
7583 return m;
7684 } else {
77- return await _addMapper (await DependentClassMapperElement .from (this , e, options));
85+ return await _addMapper (
86+ await DependentClassMapperElement .from (this , e, options));
7887 }
7988 }
8089 } else if (e is EnumElement2 ) {
8190 if (enumChecker.hasAnnotationOf (e)) {
8291 if (e.library2 == library) {
83- return await _addMapper (await TargetEnumMapperElement .from (this , e, options));
92+ return await _addMapper (
93+ await TargetEnumMapperElement .from (this , e, options));
8494 } else {
85- return await _addMapper (await DependentEnumMapperElement .from (this , e, options));
95+ return await _addMapper (
96+ await DependentEnumMapperElement .from (this , e, options));
8697 }
8798 }
8899 } else if (e is TypeAliasElement2 ) {
89- if (classChecker.hasAnnotationOf (e) && e.aliasedType.element3 is ClassElement2 ) {
100+ if (classChecker.hasAnnotationOf (e) &&
101+ e.aliasedType.element3 is ClassElement2 ) {
90102 if (e.library2 == library) {
91- return await _addMapper (await AliasClassMapperElement .from (this , e, options));
103+ return await _addMapper (
104+ await AliasClassMapperElement .from (this , e, options));
92105 }
93- } else if (recordChecker.hasAnnotationOf (e) && e.aliasedType is RecordType ) {
106+ } else if (recordChecker.hasAnnotationOf (e) &&
107+ e.aliasedType is RecordType ) {
94108 if (e.library2 == library) {
95- return await _addMapper (await TargetRecordMapperElement .from (this , e, options));
109+ return await _addMapper (
110+ await TargetRecordMapperElement .from (this , e, options));
96111 } else {
97- return await _addMapper (await DependentRecordMapperElement .from (this , e, options));
112+ return await _addMapper (
113+ await DependentRecordMapperElement .from (this , e, options));
98114 }
99115 }
100116 }
@@ -117,7 +133,8 @@ class MapperElementGroup {
117133 if (element.extendsElement == null ) {
118134 var superElement = getElementFor (element.element.supertype);
119135 if (superElement != null ) {
120- var superTarget = await getOrAddMapperForElement (superElement) as ClassMapperElement ? ;
136+ var superTarget = await getOrAddMapperForElement (superElement)
137+ as ClassMapperElement ? ;
121138
122139 if (superTarget != null ) {
123140 element.extendsElement = superTarget;
@@ -131,7 +148,9 @@ class MapperElementGroup {
131148 for (var interface in element.element.interfaces) {
132149 var interfaceElement = getElementFor (interface );
133150 if (interfaceElement != null ) {
134- var interfaceTarget = await getOrAddMapperForElement (interfaceElement) as ClassMapperElement ? ;
151+ var interfaceTarget =
152+ await getOrAddMapperForElement (interfaceElement)
153+ as ClassMapperElement ? ;
135154 if (interfaceTarget != null ) {
136155 element.interfaceElements.add (interfaceTarget);
137156 if (! interfaceTarget.subElements.contains (element)) {
@@ -143,7 +162,8 @@ class MapperElementGroup {
143162 }
144163
145164 for (var elem in element.getSubClasses ()) {
146- ClassMapperElement ? subMapper = await getOrAddMapperForElement (elem) as ClassMapperElement ? ;
165+ ClassMapperElement ? subMapper =
166+ await getOrAddMapperForElement (elem) as ClassMapperElement ? ;
147167
148168 if (subMapper == null ) {
149169 throw 'Cannot include subclass ${elem .displayName } '
@@ -152,7 +172,9 @@ class MapperElementGroup {
152172
153173 if (subMapper.element.supertype? .element3 == element.element) {
154174 subMapper.extendsElement = element;
155- } else if (subMapper.element.interfaces.map ((i) => i.element3).contains (element.element)) {
175+ } else if (subMapper.element.interfaces
176+ .map ((i) => i.element3)
177+ .contains (element.element)) {
156178 if (! subMapper.interfaceElements.contains (element)) {
157179 subMapper.interfaceElements.add (element);
158180 }
@@ -226,7 +248,10 @@ class MapperElementGroup {
226248 visited: {...visited, t},
227249 );
228250 }
229- if (withNullability && t.isNullable && ! type.endsWith ('?' ) && type != 'dynamic' ) {
251+ if (withNullability &&
252+ t.isNullable &&
253+ ! type.endsWith ('?' ) &&
254+ type != 'dynamic' ) {
230255 type += '?' ;
231256 }
232257 return type;
@@ -271,12 +296,14 @@ class MapperElementGroup {
271296 if (r != null ) {
272297 type = '${r .className }<' ;
273298 type += [...t.positionalFields, ...t.namedFields]
274- .map ((f) => prefixedType (f.type, resolveBounds: resolveBounds, visited: visited))
299+ .map ((f) => prefixedType (f.type,
300+ resolveBounds: resolveBounds, visited: visited))
275301 .join (', ' );
276302 type += '>' ;
277303 } else {
278304 type = t.positionalFields
279- .map ((f) => prefixedType (f.type, resolveBounds: resolveBounds, visited: visited))
305+ .map ((f) => prefixedType (f.type,
306+ resolveBounds: resolveBounds, visited: visited))
280307 .join (', ' );
281308
282309 if (t.namedFields.isNotEmpty) {
@@ -298,16 +325,19 @@ class MapperElementGroup {
298325 }
299326
300327 if (t is FunctionType ) {
301- var returnType = prefixedType (t.returnType, resolveBounds: resolveBounds, visited: visited);
328+ var returnType = prefixedType (t.returnType,
329+ resolveBounds: resolveBounds, visited: visited);
302330
303331 var typeArgs = '' ;
304332 if (t.typeParameters.isNotEmpty) {
305333 typeArgs =
306334 '<${t .typeParameters .map ((t ) => (t .name3 ?? '' ) + (t .bound != null ? ' extends ${prefixedType (t .bound !, resolveBounds : resolveBounds , visited : visited )}' : '' )).join (', ' )}>' ;
307335 }
308336
309- var args =
310- t.normalParameterTypes.map ((t) => prefixedType (t, resolveBounds: resolveBounds, visited: visited)).join (', ' );
337+ var args = t.normalParameterTypes
338+ .map ((t) =>
339+ prefixedType (t, resolveBounds: resolveBounds, visited: visited))
340+ .join (', ' );
311341 if (t.optionalParameterTypes.isNotEmpty) {
312342 if (args.isNotEmpty) args += ', ' ;
313343 args +=
@@ -337,17 +367,20 @@ class MapperElementGroup {
337367 yield * element.typeAliases;
338368 }
339369
340- Future <List <MapEntry <LibraryElement2 , Iterable <Element2 >>>> discover (BuildStep buildStep) async {
370+ Future <List <MapEntry <LibraryElement2 , Iterable <Element2 >>>> discover (
371+ BuildStep buildStep) async {
341372 var scope = options.initializerScope;
342373
343374 bool isMapper (Element2 e) {
344375 return (e is ClassElement2 && classChecker.hasAnnotationOf (e)) ||
345376 (e is EnumElement2 && enumChecker.hasAnnotationOf (e));
346377 }
347378
348- if (scope == InitializerScope .package || scope == InitializerScope .directory) {
349- var glob =
350- scope == InitializerScope .package ? Glob ('**.dart' ) : Glob ('${dirname (buildStep .inputId .path )}/**.dart' );
379+ if (scope == InitializerScope .package ||
380+ scope == InitializerScope .directory) {
381+ var glob = scope == InitializerScope .package
382+ ? Glob ('**.dart' )
383+ : Glob ('${dirname (buildStep .inputId .path )}/**.dart' );
351384 return await buildStep
352385 .findAssets (glob)
353386 .asyncMap ((id) async {
@@ -357,7 +390,8 @@ class MapperElementGroup {
357390 return null ;
358391 })
359392 .where ((l) => l != null )
360- .map ((lib) => MapEntry (lib! , [...lib.classes, ...lib.enums].where (isMapper)))
393+ .map ((lib) =>
394+ MapEntry (lib! , [...lib.classes, ...lib.enums].where (isMapper)))
361395 .where ((e) => e.value.isNotEmpty)
362396 .toList ();
363397 } else if (scope == InitializerScope .library) {
0 commit comments