"{ Package: 'stx:goodies/monticello' }"
Object subclass:#MCStXSnapshotTransformation
instanceVariableNames:'original transformed'
classVariableNames:''
poolDictionaries:''
category:'SCM-Monticello-St/X Storing'
!
!MCStXSnapshotTransformation class methodsFor:'documentation'!
documentation
"
An abstract superclass to snapshot tranformations. Used to alter MCSnaphot data
to hide-out nasty differences between St/X and Squeak/Pharo package model so
.mcz can be safely passed to from one environment to another without information
loss.
CAUTION: Tricky.
[author:]
Jan Vrany <jan.vrany@fit.cvut.cz>
[instance variables:]
[class variables:]
[see also:]
MCStXSnapshotPreWriteTransformation
MCStXSnapshotPostReadTransformation
"
! !
!MCStXSnapshotTransformation class methodsFor:'testing'!
isAbstract
^self == MCStXSnapshotTransformation
"Created: / 29-05-2013 / 11:32:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCStXSnapshotTransformation class methodsFor:'transforming'!
transform: anMCSnapshot
"Returns a transformed **copy** of the original snapshot"
^self new transform: anMCSnapshot.
"Created: / 29-05-2013 / 11:36:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCStXSnapshotTransformation methodsFor:'accessing'!
original
^ original
!
transformed
^ transformed
! !
!MCStXSnapshotTransformation methodsFor:'transforming'!
transform: anMCSnapshot
"Returns a transformed **copy** of the original snapshot"
original := anMCSnapshot.
transformed := original copy.
"use #copy to allow modifications to definitions collection while
transforming."
transformed definitions copy reverseDo:[:definition|
definition accept: self.
].
^transformed.
"Created: / 29-05-2013 / 11:40:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 31-05-2013 / 00:10:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCStXSnapshotTransformation methodsFor:'visiting'!
visitClassDefinition: definition
"Modified: / 29-05-2013 / 12:07:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
visitClassTraitDefinition: definition
"Modified: / 29-05-2013 / 12:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
visitMetaclassDefinition: definition
"Modified: / 29-05-2013 / 12:08:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
visitMethodDefinition: definition
"Modified: / 29-05-2013 / 12:08:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
visitOrganizationDefinition: defintion
"Modified: / 29-05-2013 / 12:08:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
visitTraitDefinition: definition
"Modified: / 29-05-2013 / 12:08:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCStXSnapshotTransformation class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotTransformation.st,v 1.2 2013-05-30 23:35:33 vrany Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotTransformation.st,v 1.2 2013-05-30 23:35:33 vrany Exp $'
! !