[[BackLinksMenu]]

[[TicketQuery(summary=PRO_CHANGE_COMPOSING_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 composite changes. Such changes are constructed of a list of simple changes.

== Task requirements ==
 * Review code [source:trunk/sophie2-platform/modules/org.sophie2.core/src/main/java/org/sophie2/core/prolib/events/GroupChange.java GroupChange] which represent a composite change.
 * View also the things in [source:trunk/sophie2-platform/modules/org.sophie2.core/src/main/java/org/sophie2/core/prolib/events Classes connected with changes].
 * Make sure composite changes are properly created.
 * Write unit tests and review the already written such unit tests.
 * Provide examples when composing changes should be done - for example when the user hits the space key, a new character is entered and this is a simple change. On the other hand entering a word is a set of characters that should be undone as a !GroupChange.
 * Composing changes should be undone properly as well.
 * '''NOTE''' pay special attention to the following task since for !GroupChanges it is vital => [wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0]

== Task result ==
 * Source code.
 * List of composite changes in the wiki and the way a composite change is created.

== Implementation idea ==
 * review source code.
 * think what should be improved and do it.
 * provide more unit tests.
 * think of the examples that should be composite changes.

== Related ==

[wiki:PRO_CHANGE_PRIMITIVES_R0] [[BR]]
[wiki:PRO_CHANGE_TRANSACTION_SAFETY_R0] [[BR]]
[wiki:PRO_CHANGE_COMPOSING_R0] [[BR]]
[wiki:PRO_CHANGE_MANAGER_R0] [[BR]]

== How to demo ==

= Design =

= Implementation =

= Testing =

= Comments =