MCSnapshot.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 31 May 2013 02:15:12 +0200
changeset 874 7a9d528b0eae
parent 862 a48551f0494d
child 895 b85534b16bd4
permissions -rw-r--r--
class: MCSnapshot changed: #postCopy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCSnapshot
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
     4
	instanceVariableNames:'definitions includeExtrasForSTX'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
681
21899a53abcd category change
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
     7
	category:'SCM-Monticello-Base'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCSnapshot class methodsFor:'as yet unclassified'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
empty
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self fromDefinitions: #()
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
fromDefinitions: aCollection
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	^ self new initializeWithDefinitions: aCollection
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!MCSnapshot methodsFor:'accessing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
= other
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ definitions asArray = other definitions asArray
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
definitions
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ definitions
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
hash
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	^ definitions asArray hash
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    33
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    34
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    35
includeExtrasForSTX
745
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    36
    "/ do not default to true here, as the version is snapshotted twice in order to
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    37
    "/ update the version-strings, and we don not need this stuff in the first round!!
c3b2dd861cce class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
    38
    ^ includeExtrasForSTX ? false
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    39
!
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    40
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    41
includeExtrasForSTX:something
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
    42
    includeExtrasForSTX := something.
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    45
!MCSnapshot methodsFor:'converting'!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    46
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    47
asChangeSet
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    48
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    49
    ^(ChangeSet withAll:
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    50
        (self definitions collect:[:def|def asChange]))
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    51
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    52
    "Created: / 13-10-2010 / 17:18:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    53
    "Modified: / 26-10-2010 / 23:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    54
! !
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    55
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    56
!MCSnapshot methodsFor:'copying'!
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    57
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    58
postCopy
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    59
    "Do half-shallow copy of definitions to allow for their transformation"
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    60
    definitions := definitions copy.
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    61
    1 to: definitions size do:[:i|
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
    62
        definitions at: i put: (definitions at:i) copy
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    63
    ]
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    64
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    65
    "Created: / 29-05-2013 / 01:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
    66
    "Modified: / 31-05-2013 / 00:54:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
849
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    67
! !
86415336eb1e More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 745
diff changeset
    68
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!MCSnapshot methodsFor:'initializing'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
initializeWithDefinitions: aCollection
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
    72
	definitions := aCollection.
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!MCSnapshot methodsFor:'loading'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
install
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	MCPackageLoader installSnapshot: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
updatePackage: aPackage
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	MCPackageLoader updatePackage: aPackage withSnapshot: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!MCSnapshot methodsFor:'patching'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
patchRelativeToBase: aSnapshot
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	^ MCPatch fromBase: aSnapshot target: self
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
! !
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
862
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    91
!MCSnapshot methodsFor:'queries'!
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    92
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    93
includesClassNamed: className
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    94
    definitions reverseDo:[:definition|
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    95
        (definition isClassDefinition and:[definition className = className])
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    96
            ifTrue:[ ^ true ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    97
    ].
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    98
    ^false
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
    99
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   100
    "Created: / 31-05-2013 / 00:04:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   101
! !
a48551f0494d More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 849
diff changeset
   102
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!MCSnapshot class methodsFor:'documentation'!
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
version
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
   106
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSnapshot.st,v 1.9 2013-05-31 00:15:12 vrany Exp $'
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   107
!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   108
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   109
version_CVS
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
   110
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSnapshot.st,v 1.9 2013-05-31 00:15:12 vrany Exp $'
203
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   111
!
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   112
fa9a97fecbd4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 104
diff changeset
   113
version_SVN
874
7a9d528b0eae class: MCSnapshot
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 862
diff changeset
   114
    ^ '$Id: MCSnapshot.st,v 1.9 2013-05-31 00:15:12 vrany Exp $'
104
8ba478a34b4b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
740
3ff29ac67ac4 class: MCSnapshot
Claus Gittinger <cg@exept.de>
parents: 681
diff changeset
   116