DataManager(client)
- Handles storage of collections of IDataObjects that are used as data provider for charts and other Flex items
- Stores all the DataObjects (in collections that are easy to make into tables? Meta information?)
- Manages the connection with the server (Creation of tables, upload of data, download of dynamic (VISIBILITY-style) data, connections with arbitrary servers, possibly multiple, specified in a per app settings.xml)
- For example, there could be one Server/Database for uploading data, and another Server/Database for downloading. There could be different databases and servers per App.
- Namespaces will be needed because apps may have similar data objects that mean other things
DataManager(server)
- Provide meta information about the database and tables working with – some kind of Flex awareness
- Parse data (in xml?) and store it in tables, create tables if necessary (could be optional)
- Create CASCADE relationships between tables where appropriate
- Query database and send results back to client (in xml?)
DataObject(client)
- Base interface and class work with dynamic data (i.e. VISIBILITY-like).
- Declarations may need to be “decorated” to allow for special table behavior
- Would dynamic data ever be used to create a table? I don’t think so. It’s just for the reading of tables
- Extensions of this class have properties that have primitive types. These types and their names can be used to create a table on the server.
- For example, a property of type Number, witl create a column in a table of type DOUBLE
- If there is a complex child, there are two possibilities – it is a DataObject or it is some other class
- If it’s a DataObject, then it creates its own table the . The table that the child DataObject creates has a CASCADE relationship with the parent. In other words, if the parent is deleted, then the child is deleted automatically
- If it is any other type, (e.g. XML), then it should be stored as a BLOB?
DataObject(server)
- Handles creation/deletion/modification of a corresponding table in the DB