Skip to content

Releases: agrosner/DBFlow

4.0.5

17 Jul 14:01
Compare
Choose a tag to compare
  1. Move the GeneratedDatabaseHolder off the last round, warnings should be gone!
  2. Update Kotlin to 1.1.3-2
  3. update Gradle plugin to 2.3.3 (3.0.0-beta currently breaks robolectric unit testing)
  4. Some new extensions
  5. add Property.allProperty(MyTable.class) so you can easily specify MyTable.* in a query.
  6. Some optimizations on generated code including removing some redundant null checking.
  7. Fix issue where DatabaseStatement in update were not closed when used in a ModelAdapter.saveAll() method.
  8. Fix package private ModelView that duplicated field definitions in generated _ViewTable class.
  9. RXJava2: Change Single to Maybe for nullable returns.

4.0.4

09 Jun 18:31
Compare
Choose a tag to compare
  1. Even better Kotlin support. if a field is not null in Kotlin or using the android.support.annotation.NonNull/org.jetbrains.annotations.NotNull annotation, we will not attempt to assign a null value on it when the Cursor contains a null value. Primitives always did this of course, but now its expanded to any time.
  2. Fixed a bug by throwing a compiler error if you reference another class in another package that has package private fields, yet its not annotated with @Table, @ModelView, or @QueryModel. You must make it public or getter/setter private.
  3. Fix nullable Float fields not compiling.
  4. Add BigIntegerConverter to the lib!
  5. Fix issue where primary keys of a reference@PrimaryKey has the same name as the calling table, i.e. both having id as a column name in the generated ModelAdapter code.
  6. Fix issue where generated @ManyToMany referenced tables that had primary keys with TypeConverter not properly calling typeconverter, leading to compile errors.
  7. Fix issue where a table with cachingEnabled=true with a stubbedRelationship table where the object that calls load called the same instance from the cache (effectively not doing anything), and did not reload its fields from the DB.
  8. More bug fixes + improvements.

4.0.3

02 Jun 03:12
Compare
Choose a tag to compare
  1. Fix issue with notIn with BaseModelQueriable parameters
  2. Enhanced Kotlin support by annotation almost all of public api with @Nullable and @NonNull
  3. Fix bug with @ManyToMany generated class not properly handling type converters.
  4. A couple more bug fixes.

4.0.2

16 May 21:56
Compare
Choose a tag to compare
  1. Fix issue where enums broke the processor. #enumsmatter
  2. Replace ContentValues with DatabaseStatement for updating models, this results in a 33%-50% speed increase!
  3. More @NonNull and @Nullable annotations
  4. Delete queries also use generated DatabaseStatement, speeding up bulk deletes.
  5. Add notnull to @InteritedColumn annotations.
  6. RXJava observeOnTableChanges() updates. each ModelNotifier has common interface for interaction.
  7. ModelChangeListener for DirectModelNotifier now uses OnTableChangeListener.onTableChanged() which adds a Class for which table changed. This enables better consolidation of interfaces. OnTableChangedListener promoted to top-level interface.

4.0.1

12 May 13:37
Compare
Choose a tag to compare
  1. Fixes issue with new documentation website, Gitbooks, and permissions.

4.0.0

11 May 20:55
Compare
Choose a tag to compare

Major new release.
Some of the major changes:

  1. Code generation significantly reduced. more than ~40% reduction in lines of code. Also order is deterministic and always the same in output.
  2. Condition -> Operator including ConditionGroup -> OperatorGroup
  3. Rewrote a lot of annotation processor with KPoet and now 99% Kotlin!
  4. Much better Kotlin support via @NonNull and @Nullable annotations on most public api methods.
  5. Can supply a different way to notify observers of changes via the new DirectModelNotifier or legacy ContentResolverNotifier
  6. Remove Model restriction from the library. Classes no longer need to implement Model. Kotlin consumers can take advantage of extension methods in kotlin-extensions to make classes act like Model.
  7. Latest plugins + Kotlin 1.1.2
  8. PrimaryKey can have type converters.
  9. ForeignKeyContainer is replaced with @ForeignKey(stubbedRelationship = true). Use Model.load() to get same functionality as before, without the confusion!
    10 . Removed ModelContainer implementation and support. Since removing support, the annotation processor is cleaner and easier to maintain.
  10. Added RXJava1 + 2 support via sub-packages, with corresponding Kotlin extension libraries.
  11. New documentation website here
  12. Bug fixes, documentation updates, and more.

4.0.0-beta7

12 Apr 01:19
Compare
Choose a tag to compare
4.0.0-beta7 Pre-release
Pre-release

Fixes issue where the rx, rx2, and corresponding Kotlin extensions for each did not publish to JitPack.

4.0.0-beta6

07 Apr 20:12
Compare
Choose a tag to compare
4.0.0-beta6 Pre-release
Pre-release

This should be last beta before 4.0.0 if no serious issues.

  1. rewrite unit tests - most classes are tested. more tests will follow
  2. Condition are now Operator, this includes SQLCondition -> SQLOperator, ConditionGroup -> OperatorGroup. Operator are now typed and safer to use.
    -> Operator now also have div, times, rem, plus and minus methods.
  3. Property class changes:
    -> All primitive Property classes have been removed. We already boxed the values internally
    anyways so removing them cut down on method count and maintenance.
    -> BaseProperty no longer needs to exist, so all of it's methods now exist in Property
    -> mod method is now rem (remainder) method to match Kotlin 1.1's changes.
    -> dividedBy is now div to match Kotlin operators.
    -> multipliedBy is now times to match Kotlin operators.
  4. Add KPoet to Annotation processor to make processing code more readable.
  5. Many More Kotlin extension methods
  6. Code output is deterministic, meaning always in same order unless generated files are added or removed.
  7. Reduce code generation further in this branch.
  8. Add a bunch of @Nullable and @NonNull annotations to public api members to better support Kotlin.
  9. Abstracted out the default Model notification system to allow you to override how its done. the options include ContentResolverNotifier (default, previous implementation wrapped in new), or DirectModelNotifier - receive changes with the Model directly.

4.0.0-beta5

05 Jan 04:08
Compare
Choose a tag to compare
4.0.0-beta5 Pre-release
Pre-release

Attempt to republish beta4.

4.0.0-beta4

02 Jan 02:15
Compare
Choose a tag to compare
4.0.0-beta4 Pre-release
Pre-release
  1. Close insert SQLiteStatement from ModelAdapter when resetting DB.
  2. @QueryModel + @ModelView no longer require their BaseQueryModel + BaseModelView base classes.
  3. Added ability to specify allowedSubTypes in TypeConverter, meaning subclasses of types can all register to same typeconverter.
  4. Allow user override of default TypeConverters by declaring usual custom converter with the @TypeConverter annotation.
  5. Cut libs method count footprint by ~100. Library now stands at 2278 methods. Also cut down on generated code + generated code method references when some method overrides were generated even when not actually used for custom behavior in ModelAdapter.
  6. Methods Added: Add nullIf() and ifNull() methods. Support strftime(), date(), and datetime() methods.
  7. Can now disable caching for models with caching enabled in certain queries via:
select().from(MyTable.class)
.disableCaching()
.queryList()
  1. save, delete, + update methods in Model + ModelAdapter all return boolean for success / failure.
  2. Can specify custom db extension via @Database(databaseExtension = )
    10 .ProcessModel interface method now adds a DatabaseWrapper: processModel(Model, DatabaseWrapper
  3. Can do async insert, update, and delete via:
insert(MyTable.class)
.columns(...)
.values(...)
.async()
.execute()
  1. Minor bug fixes + code stability improvements.