Peter Serwylo 7c13cc26fc Create Schema interface to make it simpler to replace string literals with constants.
Right now, table names are in `DBHelper.TABLE_*` constants, and each tables fields are
in `*Provider.DataColumns.*` constants. This brings them all into a predictable location.
In addition, it makes it easier to statically import `Schema` so that instead of, e.g.,

 * `AppProvider.DataColumns.PACKAGE_NAME`

We can choose one of the following, based on our current context:

 * `Schema.AppTable.Cols.PACKAGE_NAME`
 * `AppTable.Cols.PACKAGE_NAME`
 * `Cols.PACKAGE_NAME`

In the worst case, it isa couple of chars shorter than now. In the best case, if we are
writing a class that primarily deals with Apps (e.g. App.java or AppProvider.java) then
we get a big win with just `Cols.PACKAGE_NAME`.

Having these things slightly shorter may seem like it is pointless, but the length of
each constant probably contributed to my lack of willingness to use constants instead
of string literals when constructing queries.

In the future, this should be moved towards something more akin to:

> http://openhms.sourceforge.net/sqlbuilder/

and I hope that extracting all the schema stuff into one interface may help that.
2016-06-30 13:36:23 +10:00
..
2016-06-23 11:42:53 +01:00