1
- import 'dart:convert' ;
2
-
3
1
import 'package:build/build.dart' ;
4
2
import 'package:collection/collection.dart' show IterableExtension;
5
3
import 'package:objectbox/internal.dart' ;
@@ -26,6 +24,7 @@ class CodeChunks {
26
24
${model .entities .map (createModelEntity ).join (',' )}
27
25
];
28
26
27
+ /// ObjectBox model definition, pass it to [Store] - Store(getObjectBoxModel())
29
28
ModelDefinition getObjectBoxModel() {
30
29
${defineModel (model )}
31
30
@@ -36,7 +35,7 @@ class CodeChunks {
36
35
return ModelDefinition(model, bindings);
37
36
}
38
37
39
- ${model .entities .mapIndexed (( i , entity ) => "class ${ entity . name }_ {${ _queryConditionBuilder ( i , entity )}}" ).join ("\n " )}
38
+ ${model .entities .mapIndexed (_metaClass ).join ("\n " )}
40
39
""" ;
41
40
42
41
static List <T > sorted <T >(List <T > list) {
@@ -490,8 +489,8 @@ class CodeChunks {
490
489
.join (',' ) +
491
490
'}' ;
492
491
493
- static String _queryConditionBuilder (int i, ModelEntity entity) {
494
- final ret = < String > [];
492
+ static String _metaClass (int i, ModelEntity entity) {
493
+ final fields = < String > [];
495
494
for (var p = 0 ; p < entity.properties.length; p++ ) {
496
495
final prop = entity.properties[p];
497
496
final name = prop.name;
@@ -536,16 +535,20 @@ class CodeChunks {
536
535
'static final ${propertyFieldName (prop )} = Query${fieldType }Property<${entity .name }' ;
537
536
if (prop.isRelation) propCode += ', ${prop .relationTarget }' ;
538
537
propCode += '>(_entities[$i ].properties[$p ]);' ;
539
- ret .add (propCode);
538
+ fields .add (propCode);
540
539
}
541
540
542
541
for (var r = 0 ; r < entity.relations.length; r++ ) {
543
542
final rel = entity.relations[r];
544
543
final targetEntityName =
545
544
entity.model.findEntityByUid (rel.targetId.uid)! .name;
546
- ret .add ('static final ${rel .name } = QueryRelationMany'
545
+ fields .add ('static final ${rel .name } = QueryRelationMany'
547
546
'<${entity .name }, $targetEntityName >(_entities[$i ].relations[$r ]);' );
548
547
}
549
- return ret.join ();
548
+
549
+ return '''
550
+ /// [${entity .name }] entity fields to define ObjectBox queries.
551
+ class ${entity .name }_ {${fields .join ()}}
552
+ ''' ;
550
553
}
551
554
}
0 commit comments