[[BackLinksMenu]] [[TicketQuery(summary=BASE_PERSISTENCE_FORMAT_REGISTRY_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == The task is about persistence formats that Sophie 2.0 will represent and their management. == Task requirements == * The registry should be able to register several formats. * For every format and its extensions, the registry: * should be able to list the supported things. * if user tries to save current book in a particular format: * the registry should check what of the things will actually be saved. * if some things are not to be saved - the registry should provide that these are not supported by the format. * if the client provides a new extension of a particular format: * the things that are about to enter the format and be persisted, should be registered in the registry as well so that it respond correctly to saving in and loading from that particular format. * Create activity diagram to show how the registry cooperates with the persistence formats. == Task result == * source code. * UML diagrams. == Implementation idea == * view code: * => [source:trunk/sophie2-platform/modules/org.sophie2.base.persistence] * => [source:trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r1/src/main/java/org/sophie2/main/model/book/format/r1] * => [source:trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r2/src/main/java/org/sophie2/main/model/book/format/r2] == Related == * [wiki:BASE_PERSISTENCE_COMMONS_R0] * [wiki:BASE_PERSISTENCE_INTERMEDIATE_STORAGE_R0] * [wiki:BASE_PERSISTENCE_FORMAT_POINT_R0] * [wiki:BASE_PERSISTENCE_PROPERTY_FORMAT_R0] * [wiki:BASE_PERSISTENCE_IMMUTABLES_R0] == How to demo == = 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.)