diff --git a/angel_orm_generator/lib/src/postgresql_orm_generator.dart b/angel_orm_generator/lib/src/postgresql_orm_generator.dart index 0bcf72ef..5c075aaa 100644 --- a/angel_orm_generator/lib/src/postgresql_orm_generator.dart +++ b/angel_orm_generator/lib/src/postgresql_orm_generator.dart @@ -37,9 +37,36 @@ class PostgreSqlOrmGenerator extends GeneratorForAnnotation { Library buildOrmLibrary(AssetId inputId, OrmBuildContext ctx) { return new Library((lib) { // Add part of - var libFile = - p.setExtension(p.basename(inputId.uri.path), '.orm.g.dart'); + var libFile = p.setExtension(p.basename(inputId.uri.path), '.orm.g.dart'); lib.body.add(new Code("part of '$libFile';")); + + // Add _PostgresqlFooOrmImpl + lib.body.add(buildOrmClass(ctx)); + }); + } + + Class buildOrmClass(OrmBuildContext ctx) { + return new Class((clazz) { + var rc = ctx.buildContext.modelClassNameRecase; + clazz + ..name = '_Postgresql${rc.pascalCase}OrmImpl' + ..implements.add(refer('${rc.pascalCase}Orm')) + + // final PostgreSQLConnection connection; + ..fields.add(new Field((b) { + b + ..modifier = FieldModifier.final$ + ..name = 'connection' + ..type = refer('PostgreSQLConnection'); + })) + + // _PostgresqlFooOrmImpl(this.connection); + ..constructors.add(new Constructor((b) { + b + ..requiredParameters.add(new Parameter((b) => b + ..name = 'connection' + ..toThis = true)); + })); }); } } diff --git a/angel_orm_generator/test/models/author.mongodb.orm.g.dart b/angel_orm_generator/test/models/author.mongodb.orm.g.dart new file mode 100644 index 00000000..40a03a91 --- /dev/null +++ b/angel_orm_generator/test/models/author.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'author.orm.g.dart'; diff --git a/angel_orm_generator/test/models/author.orm.g.dart b/angel_orm_generator/test/models/author.orm.g.dart index 2de315b4..c4dc33e4 100644 --- a/angel_orm_generator/test/models/author.orm.g.dart +++ b/angel_orm_generator/test/models/author.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'author.dart'; -part 'author.postgresql.orm.dart'; +part 'author.postgresql.orm.g.dart'; abstract class AuthorOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/author.postgresql.orm.g.dart b/angel_orm_generator/test/models/author.postgresql.orm.g.dart new file mode 100644 index 00000000..f773ee93 --- /dev/null +++ b/angel_orm_generator/test/models/author.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'author.orm.g.dart'; diff --git a/angel_orm_generator/test/models/book.mongodb.orm.g.dart b/angel_orm_generator/test/models/book.mongodb.orm.g.dart new file mode 100644 index 00000000..14e7cc37 --- /dev/null +++ b/angel_orm_generator/test/models/book.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "author" with type "Author". diff --git a/angel_orm_generator/test/models/book.postgresql.orm.g.dart b/angel_orm_generator/test/models/book.postgresql.orm.g.dart new file mode 100644 index 00000000..f62dfee3 --- /dev/null +++ b/angel_orm_generator/test/models/book.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "author" with type "Author". diff --git a/angel_orm_generator/test/models/car.mongodb.orm.g.dart b/angel_orm_generator/test/models/car.mongodb.orm.g.dart new file mode 100644 index 00000000..416298da --- /dev/null +++ b/angel_orm_generator/test/models/car.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'car.orm.g.dart'; diff --git a/angel_orm_generator/test/models/car.orm.g.dart b/angel_orm_generator/test/models/car.orm.g.dart index 78bc63e1..8d9bdd5c 100644 --- a/angel_orm_generator/test/models/car.orm.g.dart +++ b/angel_orm_generator/test/models/car.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'car.dart'; -part 'car.postgresql.orm.dart'; +part 'car.postgresql.orm.g.dart'; abstract class CarOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/car.postgresql.orm.g.dart b/angel_orm_generator/test/models/car.postgresql.orm.g.dart new file mode 100644 index 00000000..84553888 --- /dev/null +++ b/angel_orm_generator/test/models/car.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'car.orm.g.dart'; diff --git a/angel_orm_generator/test/models/customer.mongodb.orm.g.dart b/angel_orm_generator/test/models/customer.mongodb.orm.g.dart new file mode 100644 index 00000000..5e87e1a9 --- /dev/null +++ b/angel_orm_generator/test/models/customer.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'customer.orm.g.dart'; diff --git a/angel_orm_generator/test/models/customer.orm.g.dart b/angel_orm_generator/test/models/customer.orm.g.dart index b0496cf3..50a06c61 100644 --- a/angel_orm_generator/test/models/customer.orm.g.dart +++ b/angel_orm_generator/test/models/customer.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'customer.dart'; -part 'customer.postgresql.orm.dart'; +part 'customer.postgresql.orm.g.dart'; abstract class CustomerOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/customer.postgresql.orm.g.dart b/angel_orm_generator/test/models/customer.postgresql.orm.g.dart new file mode 100644 index 00000000..dca5d807 --- /dev/null +++ b/angel_orm_generator/test/models/customer.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'customer.orm.g.dart'; diff --git a/angel_orm_generator/test/models/foot.mongodb.orm.g.dart b/angel_orm_generator/test/models/foot.mongodb.orm.g.dart new file mode 100644 index 00000000..c3cdb85a --- /dev/null +++ b/angel_orm_generator/test/models/foot.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'foot.orm.g.dart'; diff --git a/angel_orm_generator/test/models/foot.orm.g.dart b/angel_orm_generator/test/models/foot.orm.g.dart index 65bffe5e..4310abda 100644 --- a/angel_orm_generator/test/models/foot.orm.g.dart +++ b/angel_orm_generator/test/models/foot.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'foot.dart'; -part 'foot.postgresql.orm.dart'; +part 'foot.postgresql.orm.g.dart'; abstract class FootOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/foot.postgresql.orm.g.dart b/angel_orm_generator/test/models/foot.postgresql.orm.g.dart new file mode 100644 index 00000000..7d098823 --- /dev/null +++ b/angel_orm_generator/test/models/foot.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'foot.orm.g.dart'; diff --git a/angel_orm_generator/test/models/fruit.mongodb.orm.g.dart b/angel_orm_generator/test/models/fruit.mongodb.orm.g.dart new file mode 100644 index 00000000..6958cc16 --- /dev/null +++ b/angel_orm_generator/test/models/fruit.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'fruit.orm.g.dart'; diff --git a/angel_orm_generator/test/models/fruit.orm.g.dart b/angel_orm_generator/test/models/fruit.orm.g.dart index bb59488a..482ab1fc 100644 --- a/angel_orm_generator/test/models/fruit.orm.g.dart +++ b/angel_orm_generator/test/models/fruit.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'fruit.dart'; -part 'fruit.postgresql.orm.dart'; +part 'fruit.postgresql.orm.g.dart'; abstract class FruitOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/fruit.postgresql.orm.g.dart b/angel_orm_generator/test/models/fruit.postgresql.orm.g.dart new file mode 100644 index 00000000..90a97017 --- /dev/null +++ b/angel_orm_generator/test/models/fruit.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'fruit.orm.g.dart'; diff --git a/angel_orm_generator/test/models/leg.mongodb.orm.g.dart b/angel_orm_generator/test/models/leg.mongodb.orm.g.dart new file mode 100644 index 00000000..e5122312 --- /dev/null +++ b/angel_orm_generator/test/models/leg.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "foot" with type "Foot". diff --git a/angel_orm_generator/test/models/leg.postgresql.orm.g.dart b/angel_orm_generator/test/models/leg.postgresql.orm.g.dart new file mode 100644 index 00000000..34839103 --- /dev/null +++ b/angel_orm_generator/test/models/leg.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "foot" with type "Foot". diff --git a/angel_orm_generator/test/models/order.mongodb.orm.g.dart b/angel_orm_generator/test/models/order.mongodb.orm.g.dart new file mode 100644 index 00000000..9103d177 --- /dev/null +++ b/angel_orm_generator/test/models/order.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'order.orm.g.dart'; diff --git a/angel_orm_generator/test/models/order.orm.g.dart b/angel_orm_generator/test/models/order.orm.g.dart index 5fed422d..14fec042 100644 --- a/angel_orm_generator/test/models/order.orm.g.dart +++ b/angel_orm_generator/test/models/order.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'order.dart'; -part 'order.postgresql.orm.dart'; +part 'order.postgresql.orm.g.dart'; abstract class OrderOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/order.postgresql.orm.g.dart b/angel_orm_generator/test/models/order.postgresql.orm.g.dart new file mode 100644 index 00000000..a0e77733 --- /dev/null +++ b/angel_orm_generator/test/models/order.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'order.orm.g.dart'; diff --git a/angel_orm_generator/test/models/role.mongodb.orm.g.dart b/angel_orm_generator/test/models/role.mongodb.orm.g.dart new file mode 100644 index 00000000..8dcf6298 --- /dev/null +++ b/angel_orm_generator/test/models/role.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +part of 'role.orm.g.dart'; diff --git a/angel_orm_generator/test/models/role.orm.g.dart b/angel_orm_generator/test/models/role.orm.g.dart index 2ef5e351..60ed45e4 100644 --- a/angel_orm_generator/test/models/role.orm.g.dart +++ b/angel_orm_generator/test/models/role.orm.g.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'role.dart'; -part 'role.postgresql.orm.dart'; +part 'role.postgresql.orm.g.dart'; abstract class RoleOrm { Future> getAll(); diff --git a/angel_orm_generator/test/models/role.postgresql.orm.g.dart b/angel_orm_generator/test/models/role.postgresql.orm.g.dart new file mode 100644 index 00000000..5af86685 --- /dev/null +++ b/angel_orm_generator/test/models/role.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +part of 'role.orm.g.dart'; diff --git a/angel_orm_generator/test/models/tree.mongodb.orm.g.dart b/angel_orm_generator/test/models/tree.mongodb.orm.g.dart new file mode 100644 index 00000000..bfcfb0bd --- /dev/null +++ b/angel_orm_generator/test/models/tree.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "fruits" with type "List". diff --git a/angel_orm_generator/test/models/tree.postgresql.orm.g.dart b/angel_orm_generator/test/models/tree.postgresql.orm.g.dart new file mode 100644 index 00000000..d8da15ee --- /dev/null +++ b/angel_orm_generator/test/models/tree.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "fruits" with type "List". diff --git a/angel_orm_generator/test/models/user.mongodb.orm.g.dart b/angel_orm_generator/test/models/user.mongodb.orm.g.dart new file mode 100644 index 00000000..8d7bc6d9 --- /dev/null +++ b/angel_orm_generator/test/models/user.mongodb.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// MongoDBOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "roles" with type "List". diff --git a/angel_orm_generator/test/models/user.postgresql.orm.g.dart b/angel_orm_generator/test/models/user.postgresql.orm.g.dart new file mode 100644 index 00000000..5c66fa10 --- /dev/null +++ b/angel_orm_generator/test/models/user.postgresql.orm.g.dart @@ -0,0 +1,7 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// PostgreSqlOrmGenerator +// ************************************************************************** + +// Error: Cannot infer SQL column type for field "roles" with type "List".