--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MCMcdReader.st Wed Nov 22 14:04:52 2006 +0100
@@ -0,0 +1,67 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+MCMczReader subclass:#MCMcdReader
+ instanceVariableNames:'baseInfo patch'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Monticello-Storing'
+!
+
+
+!MCMcdReader class methodsFor:'as yet unclassified'!
+
+extension
+ ^ 'mcd'
+! !
+
+!MCMcdReader methodsFor:'as yet unclassified'!
+
+baseInfo
+ ^ baseInfo ifNil: [self loadBaseInfo]
+!
+
+basicVersion
+ ^ MCDiffyVersion
+ package: self package
+ info: self info
+ dependencies: self dependencies
+ baseInfo: self baseInfo
+ patch: self patch
+!
+
+buildPatchFrom: oldDefinitions to: newDefinitions
+ ^ MCPatch
+ fromBase: (MCSnapshot fromDefinitions: oldDefinitions)
+ target: (MCSnapshot fromDefinitions: newDefinitions)
+!
+
+loadBaseInfo
+ ^ baseInfo _ self extractInfoFrom: (self parseMember: 'base')
+!
+
+loadPatch
+ | old new |
+ (self zip memberNamed: 'patch.bin') ifNotNilDo:
+ [:m | [^ patch _ (DataStream on: m contentStream) next ]
+ on: Error do: [:fallThrough ]].
+ definitions _ OrderedCollection new.
+ (self zip membersMatching: 'old/*')
+ do: [:m | self extractDefinitionsFrom: m].
+ old _ definitions asArray.
+ definitions _ OrderedCollection new.
+ (self zip membersMatching: 'new/*')
+ do: [:m | self extractDefinitionsFrom: m].
+ new _ definitions asArray.
+ ^ patch _ self buildPatchFrom: old to: new.
+
+!
+
+patch
+ ^ patch ifNil: [self loadPatch]
+! !
+
+!MCMcdReader class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMcdReader.st,v 1.1 2006-11-22 13:04:52 cg Exp $'
+! !