"{ 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 $'
! !