Version 6 (modified by peko, 16 years ago) (diff) |
---|
Analysis
Overview
This task is about the primitives that are needed to manage changes. These include primitive operations about changes.
Task requirements
- Primitive operations about changes which include the following:
- create - which should create a change which should have an id. The design section should decide on the uniqueness of the id of a change. This is needed to manage changes on a server for example.
- destroy - which should destroy a change by an id.
- set - should be able to set the change with an id for a property. This will be helpful if for example a change is to be altered so that consistency is kept. There will occur situation with changes on a server where some part of a composite change should be altered. Imagine for example several people managing a book at the same time.
- Changes types:
- Change - a simple change.
- GroupChange - a composite change that is constructed of simple changes.
- UnmanagedChange - a change that is not supposed to be skipped/unskipped, undone/redone, simply because there is no logical way of doing so or if we decide on changes that will not be managed. For example - save a book may be a unmanaged change. If the user creates a frame with a movie content (with a media file of over 700Mb), deletes the frame, deletes the media file and requests a undo - the change may become a unmanaged. If the user had not deleted the media file the change would have been a normal change that can be undone.
- Note - the primitive operations described above should be possible having in mind these types of changes.
- A decent documentation should be created that explains the primitives - change types and operations with them.
Task result
- Source code
- wiki page somewhere - may be only a wiki content in the design section.
Implementation idea
- look at the code in Changes types in event package to get an idea.
- decide on a way to create the different operations.
- decide which of the change are to be unmanaged.
- implement what is to be implemented.
- describe how to use changes.
Related
PRO_CHANGE_COMMONS_R0
PRO_CHANGE_TRANSACTION_SAFETY_R0
PRO_CHANGE_COMPOSING_R0
PRO_CHANGE_MANAGER_R0
How to demo
- run unit tests about change.
- show the wiki content.