Torch internals

Torch is built around Android's SQLite, but it does not require it and can be used with other databases and platforms as well.

TorchService

User facing class that handles singleton access to Torch functionality.

Actor DSL

NOTE: Would adding ActorFactory help anything? WARNING: There might be problem with the loader API, because each database has different capabilities. We should think about this properly before the release of first Beta.

Actors are many interfaces designed to help and guide the user through load, save and delete actions. The most advanced is the Loader.

[ ] - rename package action to dsl [ ] - rename Loader to LoadDsl (or just Load?) [ ] - rename Saver to SaveDsl (or just Save?) [ ] - rename Deleter to DeleteDsl (or just Delete?)

Loader

Saver

Deleter

EntityManager

DatabaseEngine

NOTE: Might be renamed to DatabaseDriver for better clarity.

This part provides the connection between EntityManager and the target database. It should have little to no logic as there will be many engines and they should not just duplicate the code.

Subparts

Migration assistant

Implementation of the MigrationAssistant interface that handles the necessary migration calls from the user. This is database-dependent because each database has different possibilities.

Database

This should be always outside Torch and should have no knowledge about Torch. The only exception to that is MockDatabase which is only used in unit tests.