flutter_orm_m8 0.6.0 copy "flutter_orm_m8: ^0.6.0" to clipboard
flutter_orm_m8: ^0.6.0 copied to clipboard

outdated

Flutter package for ORM annotations. It defines ColumnMetadata, TableMetadata, DataTable, DataColumn annotations. Targeted audience is code generators

Flutter ORM Mate - flutter_orm_m8 #

Gitter GitHub release pub package Build Status license

Flutter package for ORM annotations.

Introduction #

The package adds definitions for a set of types that could be combined to expand ORM capabilities in the annotated code. The current version, defines four annotation types:

  • DataTable
  • DataColumn
  • TableMetadata
  • ColumnMetadata

In order to ease the code emitting four abstract classes are defined:

  • DbOpenEntity
  • DbEntity
  • DbAccountEntity implements DbEntity
  • DbAccountRelatedEntity implements DbEntity

Annotations #

DataTable #

DataTable describes the required name for the table in conjuction with a bit mask for optional TableMetadata

@DataTable("a01_tests")
class A01Test implements DbAccountRelatedEntity {

DataColumn #

DataColumn describes the required name for the column in conjunction with a bit mask for required ColumnMetadata's

  @DataColumn("id", ColumnMetadata.PrimaryKey | ColumnMetadata.Unique | ColumnMetadata.AutoIncrement)
  int id;

TableMetadata #

The TableMetadata describes the basic options for the table:

  • SoftDeletable
  • TrackCreate
  • TrackUpdate

The options may be combined in various ways using | operator

@DataTable(
    "health_issues",
        TableMetadata.SoftDeletable |
        TableMetadata.TrackCreate |
        TableMetadata.TrackUpdate)

ColumnMetadata #

The ColumnMetadata describes the basic options for a column definition:

  • Ignore
  • PrimaryKey
  • Unique
  • NotNull
  • AutoIncrement
  • Indexed

The options may be combined in various ways using | operator

@DataColumn("id", ColumnMetadata.PrimaryKey | ColumnMetadata.Unique | ColumnMetadata.AutoIncrement)

Interfaces #

DbOpenEntity #

DbOpenEntity is as it's name suggest a template for non restrictive models with composite primary keys. Also it may be used for non integer primary key implementation.
It defines a single method getPrimaryKey

DbEntity #

May be used for a general purpose model template with integer primary key named id

DbAccountEntity #

It implements DbEntity. May be used for a model template in a generic user account with the following fields:

  • userName
  • email
  • abbreviation
  • isCurrent

DbAccountRelatedEntity implements DbEntity #

It implements DbEntity. May be used for a model template in a generic, account dependent, entity with the following fields:

  • accountId

Usage #

The package can be a start for other projects that aim to develop an ORM. Such project is https://github.com/matei-tm/flutter-sqlite-m8-generator

@DataTable("a01_tests", TableMetadata.SoftDeletable)
class A01Test implements DbAccountRelatedEntity {
  @DataColumn("id", ColumnMetadata.PrimaryKey | ColumnMetadata.Unique | ColumnMetadata.AutoIncrement)
  int id;

  @DataColumn("account_id")
  int accountId;

  @DataColumn("record_date")
  int recordDate;
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Flutter package for ORM annotations. It defines ColumnMetadata, TableMetadata, DataTable, DataColumn annotations. Targeted audience is code generators

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on flutter_orm_m8