@@ -3,19 +3,22 @@ import 'package:analyzer/dart/element/type.dart';
3
3
import 'package:collection/collection.dart' ;
4
4
import 'package:floor_generator/misc/extension/dart_type_extension.dart' ;
5
5
import 'package:floor_generator/misc/type_utils.dart' ;
6
+ import 'package:floor_generator/processor/error/base_query_method_processor_error.dart' ;
6
7
import 'package:floor_generator/processor/processor.dart' ;
7
8
import 'package:floor_generator/value_object/query_method.dart' ;
8
9
import 'package:floor_generator/value_object/queryable.dart' ;
9
10
10
11
abstract class BaseQueryMethodProcessor extends Processor <QueryMethod > {
11
12
final MethodElement _methodElement;
12
13
final List <Queryable > _queryables;
14
+ final BaseQueryMethodProcessorError _processorError;
13
15
14
16
BaseQueryMethodProcessor (
15
17
final MethodElement methodElement,
16
18
final List <Queryable > queryables,
17
19
) : _methodElement = methodElement,
18
- _queryables = queryables;
20
+ _queryables = queryables,
21
+ _processorError = BaseQueryMethodProcessorError (methodElement);
19
22
20
23
@override
21
24
QueryMethod process () {
@@ -76,12 +79,10 @@ abstract class BaseQueryMethodProcessor extends Processor<QueryMethod> {
76
79
final bool returnsStream,
77
80
) {
78
81
if (! rawReturnType.isDartAsyncFuture && ! returnsStream) {
79
- onDoesNotReturnFutureNorStream () ;
82
+ throw _processorError.doesNotReturnFutureNorStream ;
80
83
}
81
84
}
82
85
83
- void onDoesNotReturnFutureNorStream ();
84
-
85
86
void _assertReturnsNullableSingle (
86
87
final bool returnsStream,
87
88
final bool returnsList,
@@ -90,7 +91,9 @@ abstract class BaseQueryMethodProcessor extends Processor<QueryMethod> {
90
91
if (! returnsList &&
91
92
! flattenedReturnType.isVoid &&
92
93
! flattenedReturnType.isNullable) {
93
- onAssertReturnsNullableSingle (returnsStream);
94
+ returnsStream
95
+ ? throw _processorError.doesNotReturnNullableStream
96
+ : throw _processorError.doesNotReturnNullableFuture;
94
97
}
95
98
}
96
99
@@ -102,6 +105,4 @@ abstract class BaseQueryMethodProcessor extends Processor<QueryMethod> {
102
105
List <ParameterElement > parameters,
103
106
Queryable ? queryable,
104
107
);
105
-
106
- void onAssertReturnsNullableSingle (bool returnsStream);
107
108
}
0 commit comments