Version 7 (modified by peko, 16 years ago) (diff) |
---|
Analysis
Overview
This task is about persisting property things. Generally we have immutable things and properties with pro objects that have to be persisted. This task is responsible for persisting the property part. In this revision the following will be quite enough.
Task requirements
- ProObjects should be persisted and the following should be taken into consideration when designing how this will be done:
- ProObjects usually contain properties containing ProObjects:
- the implementor should consider that most ProObjects are dependent on other ProObjects:
- Saving and Loading should be consistent in terms of dependencies so that properties are initialized properly.
- The order of loading things should be designed so that no exceptions are thrown because of property availability.
- Example: If for example a book has a page, persisting the book should explicitly state that it is dependent on that page and page should be loaded first.
- This can be implemented by dependency listing for every ProObject.
- the implementor should consider that most ProObjects are dependent on other ProObjects:
- Properties are also dependent on immutable things as being the bottom-most part of the persisted things.
- While considering the format, have in mind that there are also extensions defined for some ProObjects which may also need to be properly constructed before the initializing of the ProObject itself.
- Think of scenarios and define the way properties save/load.
- ProObjects usually contain properties containing ProObjects:
- Create a wiki page with the design of the format that will handle the things stated above.
- provide scenarios to show that this format is really needed.
- create diagrams.
- give concrete explanations.
Task result
- wiki page.
Implementation idea
- view code:
- => trunk/sophie2-platform/modules/org.sophie2.base.persistence
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r1/src/main/java/org/sophie2/main/model/book/format/r1
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r2/src/main/java/org/sophie2/main/model/book/format/r2
- View the related things.
- Design format and create a wiki page with the task requirements fulfilled.
Related
- BASE_PERSISTENCE_COMMONS_R0
- BASE_PERSISTENCE_INTERMEDIATE_STORAGE_R0
- BASE_PERSISTENCE_FORMAT_REGISTRY_R0
- BASE_PERSISTENCE_FORMAT_POINT_R0
- BASE_PERSISTENCE_IMMUTABLES_R0
How to demo
- show the wiki page and explain the things described there.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)