[Pkg] DeltaStreams: DeltaStreams-Model-gk.11.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Wed Mar 11 15:58:08 UTC 2009


A new version of DeltaStreams-Model was added to project DeltaStreams:
http://www.squeaksource.com/DeltaStreams/DeltaStreams-Model-gk.11.mcz

==================== Summary ====================

Name: DeltaStreams-Model-gk.11
Author: gk
Time: 11 March 2009, 4:58:02 pm
UUID: 4ca49f84-6072-41ac-ad3a-56d29c936f32
Ancestors: DeltaStreams-Model-gk.10

- Removed ivar attachments, not used yet.
- Tiny refactoring in DSDelta>>asAntiChange.
- Added DSCompositeChange>>entryWriters but that is of course not enough.
- More comments

=============== Diff against DeltaStreams-Model-gk.10 ===============

Item was changed:
  ----- Method: DSDelta>>asAntiChange (in category 'applying') -----
  asAntiChange
  	"Return a new Delta that, when applied, reverts each change of this Delta
  	in reverse order. Each change should have enough information to create
  	an anti change from itself."
  
  	| anti |
  	self isRevertable ifFalse: [DSDeltaNotRevertableException signal].
  	anti := DSDelta name: 'undo ' translated, self name.
+ 	self propertiesDo: [:key :val | anti propertyAt: key put: val]. 
- 	properties ifNotNil: [properties associationsDo: [:assoc | anti propertyAt: assoc key put: assoc value]]. 
  	self changes reverseDo: [:each | anti addChange: each asAntiChange]. 
  	^anti!

Item was changed:
  ----- Method: DSDelta>>incrementChangeCounter (in category 'private') -----
  incrementChangeCounter
+ 	"Monotonically increasing change counter to enable strict chronological sorting.
+ 	And no, we can't rely on the collection size - because changes may have been removed
+ 	causing holes in the sequence etc."
- 	"Monotonically increasing change counter to enable strict chronological sorting."
  
  	^changeCounter := changeCounter + 1!

Item was added:
+ ----- Method: DSCompositeChange>>entryWriters (in category 'objects from disk') -----
+ entryWriters
+ 
+ 	| all |
+ 	self error: 'This is not so easy, we need an entryWriter for myself too!!'.
+ 	all := OrderedCollection new.
+ 	self do: [:ch | all addAll: ch entryWriters].
+ 	^all!

Item was changed:
  ----- Method: DSChange>>propertyAt:put: (in category 'accessing properties') -----
  propertyAt: aSymbol put: value
  
  	properties ifNil: [properties := Dictionary new].
  	^ properties at: aSymbol put: value!

Item was changed:
  DSChange subclass: #DSDelta
+ 	instanceVariableNames: 'compositeChange uuid test notRevertable changeCounter'
- 	instanceVariableNames: 'compositeChange uuid test notRevertable attachments changeCounter'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'DeltaStreams-Model-Base'!
  
  !DSDelta commentStamp: '<historical>' prior: 0!
  A Delta is much like a ChangeSet but improved and simplified. It captures changes much like a ChangeSet does (see #event:), but unlike ChangeSet multiple Deltas can be logging changes at the same time. A DeltaSet also maintains a chronologically ordered collection of change objects that is a true log unlike a ChangeSet which tries to normalize on the fly and does not maintain an order.
  
  Each change object carries more information than a record in a ChangeSet does - and they know how to produce their anti change which in turn gives a DSDelta the ability to produce its own anti Delta. Such an anti Delta can be used to revert a Delta.!

Item was removed:
- ----- Method: DSDelta>>attachments (in category 'accessing') -----
- attachments
- 	^attachments!



More information about the Packages mailing list