[[BackLinksMenu]] [[TicketQuery(summary=PRO_CHANGE_PRIMITIVES_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 == This task is about the primitives that are needed to manage changes. These include primitive changes and primitive operations about changes. == Task requirements == * Primitive operations about changes which include the following: * create - which should create a change by class and 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 by its property id and a String representing its value. * One more change should be added so that the set of changes fully satisfies our needs and this is the so called !UnmanagedChange. It should represent a change that cannot be managed in a logical way. For Sophie2 this could be saving or opening books. * 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 [source:trunk/sophie2-platform/modules/org.sophie2.core/src/main/java/org/sophie2/core/prolib/events 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 == [wiki:PRO_CHANGE_COMMONS_R0] [[BR]] [wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0] [[BR]] [wiki:PRO_CHANGE_COMPOSING_R0] [[BR]] [wiki:PRO_CHANGE_MANAGER_R0] [[BR]] == How to demo == * run unit tests about change. * show the wiki content. = Design = = Implementation = = Testing = = Comments =