Differences between revisions 8 and 9
Revision 8 as of 2007-01-09 17:19:43
Size: 2044
Comment:
Revision 9 as of 2009-09-20 22:47:44
Size: 2044
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
Working from 2.1 FINAL PDF version [[BR]]
sect 3.3 P26 [[BR]]
Working from 2.1 FINAL PDF version <<BR>>
sect 3.3 P26 <<BR>>
Line 14: Line 14:
sect 3.9.3 P44; Shallow Copies[[BR]] sect 3.9.3 P44; Shallow Copies<<BR>>
Line 20: Line 20:
sect 3.9.4 P44; Deep Copies[[BR]] sect 3.9.4 P44; Deep Copies<<BR>>
Line 25: Line 25:
sect 3.10.2 P45; EqualityHelper Methods[[BR]] sect 3.10.2 P45; EqualityHelper Methods<<BR>>

Background

The introduction of change summaries as properties of data objects is likely to require some special behaviour on the part of agents which operate on them. For example, CopyHelper and EqualityHelper.

Objective

Pick out the elements of the 2.1 spec that relate to definition of behaviour; identify the gaps; raise discussions on grey areas; define our implementation behaviour; identify behaviour deficiencies; feed back conclusions to spec group.


Relevant Spec Sections

Working from 2.1 FINAL PDF version
sect 3.3 P26
General Change Summary Stuff, but nothing very relevant.

sect 3.9.3 P44; Shallow Copies
If a ChangeSummary is part of the source DataObject then the copy has a new, empty ChangeSummary. The logging state of the new ChangeSummary is the same as the source ChangeSummary.

sect 3.9.4 P44; Deep Copies
If a ChangeSummary is part of the copy tree then the new ChangeSummary refers to objects in the new DataObject tree. The logging state is the same as for the source ChangeSummary.

sect 3.10.2 P45; EqualityHelper Methods

  • equalShallow(DataObject dataObject1, DataObject dataObject2) returns true if two DataObjects have the same Type, and all their compared Properties are equal.

  • equal(DataObject dataObject1, DataObject dataObject2) returns true if two DataObjects are equalShallow(), all their compared Properties are equal, and all reachable DataObjects in their graphs (excluding containers) are equal.

The definition of the term compared in this context may be found outside the spec, in the javadoc of the interface files.

Implementation Deficiencies

Copying: Currently the eAttribute which holds the change summary impl is copied by the line

   1           copyEObject.eSet(getTarget(eAttribute), eObject.eGet(eAttribute));

in EcoreUtil.Copier.copyAttribute (line 587 as on 20070108) which is clearly no good, since the two objects now share a ChangeSummaryImpl

Tuscany/TuscanyJava/SDO/ThinkingAloud/ChangeSummaryOperations (last edited 2009-09-20 22:47:44 by localhost)