Skip to content

Commit 2d34f9b

Browse files
external types: allow only external name #139
1 parent be14b89 commit 2d34f9b

File tree

3 files changed

+8
-42
lines changed

3 files changed

+8
-42
lines changed

generator/lib/src/entity_resolver.dart

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,6 @@ class EntityResolver extends Builder {
203203
// @ExternalName
204204
String? externalName;
205205
_externalNameChecker.runIfMatches(annotated, (annotation) {
206-
if (externalType == null) {
207-
throw InvalidGenerationSourceError(
208-
"@ExternalName annotation requires @ExternalType annotation to be present");
209-
}
210206
externalName = _readExternalNameParams(annotation);
211207
});
212208

@@ -265,12 +261,7 @@ class EntityResolver extends Builder {
265261

266262
// @ExternalName
267263
_externalNameChecker.runIfMatches(annotated, (annotation) {
268-
if (prop.externalType == null) {
269-
throw InvalidGenerationSourceError(
270-
"@ExternalName annotation requires @ExternalType annotation to be present");
271-
}
272-
final externalName = _readExternalNameParams(annotation);
273-
prop.externalName = externalName;
264+
prop.externalName = _readExternalNameParams(annotation);
274265
});
275266

276267
// for code generation

generator/test/code_builder_test.dart

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -464,31 +464,6 @@ void main() {
464464
expect(relation2.externalName, "my-courses-rel");
465465
});
466466
});
467-
468-
test('Only ExternalName annotation fails', () async {
469-
final source = r'''
470-
library example;
471-
import 'package:objectbox/objectbox.dart';
472-
473-
@Entity()
474-
class Example {
475-
@Id()
476-
int id = 0;
477-
478-
@ExternalName(name: 'my-mongo-uuid')
479-
List<int>? mongoUuid;
480-
}
481-
''';
482-
483-
final testEnv = GeneratorTestEnv();
484-
await expectLater(
485-
() async => await testEnv.run(source),
486-
throwsA(isA<InvalidGenerationSourceError>().having(
487-
(e) => e.message,
488-
'message',
489-
contains(
490-
"@ExternalName annotation requires @ExternalType annotation to be present"))));
491-
});
492467
}
493468

494469
Future<PackageConfig> _unsupported() {

objectbox/lib/src/native/model.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,13 @@ class Model {
144144
_cModel, rel.id.id, rel.id.uid, rel.targetId.id, rel.targetId.uid));
145145
if (rel.externalType != null) {
146146
_check(C.model_relation_external_type(_cModel, rel.externalType!));
147-
if (rel.externalName != null) {
148-
final externalName = rel.externalName!.toNativeUtf8();
149-
try {
150-
_check(C.model_relation_external_name(_cModel, externalName.cast()));
151-
} finally {
152-
calloc.free(externalName);
153-
}
147+
}
148+
final externalName = rel.externalName?.toNativeUtf8();
149+
if (externalName != null) {
150+
try {
151+
_check(C.model_relation_external_name(_cModel, externalName.cast()));
152+
} finally {
153+
calloc.free(externalName);
154154
}
155155
}
156156
}

0 commit comments

Comments
 (0)