Based on the following statement, I never interpreted this as a means of
implementing a pool of DataObjects, rather I took it to mean that I can
put this deleted object back in the graph and it is now a modified
rather than a deleted object (it maintains its object identity). In
other words a deleted object is not a dead object.
/"A deleted DataObject can be used again, have its values set, and again
be added into the data graph."
If this statement was removed, does that mean we need to guard against
deleted objects being put back in the graph? Possibly throwing an
exception, this would be a backwards compatibility issue.
Barack, Ron wrote:
RAISED BY: Ron
ChangeSummary is defined as a diff between the state of the graph when
beginLogging was called, and the state when endLogging was called. The
API used to modify the graph does not enter into the the definition.
Users that call DataObject.delete expect for the object to be
represented in the change summary as a deleted object. Usually, that
is what they get. But the description of the delete method seems to
suggest that delete is rather more intended for implementing a pool of
DataObjects, that are freed and later re-used in the graph. If delete
is used in this way, it is possible that the "deleted" object appears
as a modified object in the change summary.
The utility of implementing object pools is questionable to say the
least. It seems more reasonable to say that the delete method is
intended to indicate the object should be deleted...as opposed to
detach, which is a step towards moving the object.