wiki:PRO_CHANGE_PRIMITIVES_R0

Version 4 (modified by peko, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro 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|) failed
current transaction is aborted, commands ignored until end of transaction block

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 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.

PRO_CHANGE_PRIMITIVES_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.

Design

Implementation

Testing

Comments