MCStXSnapshotPreWriteTransformation.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 11 Jul 2023 12:13:27 +0100
branchjv
changeset 1173 e3dd2050492e
parent 1164 b2f0322f5c53
permissions -rw-r--r--
Update class category to match package name if it does not This is needed because in Squeak / Pharo world package membership is defined by (class) category prefix. This is soo annoying...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
     1
"
1173
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
     2
COPYRIGHT (c) 2020-2023 LabWare
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
     3
"
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/monticello' }"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     6
"{ NameSpace: Smalltalk }"
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     7
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
MCStXSnapshotTransformation subclass:#MCStXSnapshotPreWriteTransformation
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
     9
	instanceVariableNames:'extensionMethodCategoryMap projectDefinition includeExtrasForSTX'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	classVariableNames:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	poolDictionaries:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	category:'SCM-Monticello-St/X Storing'
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    17
copyright
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    18
"
1173
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
    19
COPYRIGHT (c) 2020-2023 LabWare
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    20
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    21
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    22
"
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    23
!
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    24
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
documentation
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    documentation to be added.
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    [author:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        Jan Vrany <jan.vrany@fit.cvut.cz>
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    [instance variables:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    [class variables:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    [see also:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    41
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    42
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    43
monticelloName
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    44
    | def code package |
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    45
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    46
    def := self projectDefinition.
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    47
    def notNil ifTrue:[^ def monticelloName].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    48
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    49
    "/ No project definition - the package is proably
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    50
    "/ pure Monticello / Tonel package with no St/X extras.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    51
    "/ 
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    52
    "/ Since all we have now is just a snapshot, we have to look
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    53
    "/ at any class or method definition and get the package name
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    54
    "/ from there.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    55
    code := original definitions detect: [:e | e isClassDefinition ] ifNone: [ nil ].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    56
    code notNil ifTrue: [
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    57
        package := code actualClass package.
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    58
    ] ifFalse: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    59
        "/ Look for some method definition
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    60
        code := original definitions detect: [:e | e isMethodDefinition ] ifNone: [ nil ].
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    61
        code notNil ifTrue: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    62
            package := (code actualClass compiledMethodAt: code selector) package.
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    63
        ].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    64
    ].
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    65
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    66
    "/ If package DOES NOT look like Smalltalk/X package name,
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    67
    "/ return it...
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    68
    (package notNil and:[ package includesAny:':/']) ifFalse: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    69
         ^ package
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    70
    ].
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    71
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    72
    "/ ...otherwise, we cannot make a guess.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    73
    self error: 'Cannot guess (monticello) package name!!'
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    74
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    75
    "Created: / 31-05-2013 / 00:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    76
    "Modified (format): / 28-10-2021 / 15:52:39 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    77
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    78
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    79
projectDefinition
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
    80
    original definitions reverseDo:[:d|
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    81
        | c |
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    82
        (d isClassDefinition
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    83
            and:[(c := d actualClass) notNil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    84
                and:[c isProjectDefinition]])
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    85
                    ifTrue:[ ^ c  ]
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    86
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    87
    ^nil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    88
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    89
    "Created: / 31-05-2013 / 00:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
    90
    "Modified: / 31-05-2013 / 10:45:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    91
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    92
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    93
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing - templates'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    94
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    95
monticelloSmalltalkXExtensionMethodCategories_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    96
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    97
'monticelloSmalltalkXExtensionMethodCategor
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    98
    "Returns an array of triples (class name, selector , St/X category)
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    99
     This information is used by Smalltalk/X when reading back Monticello package
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   100
     to patch methods category as in Monticello extensions must have funny name
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   101
     to be recognized by Monticello as extensions."
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   102
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   103
    ^#(
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   104
%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   105
    )
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   106
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   107
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   108
    "Created: / 31-05-2013 / 00:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   109
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   110
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   111
monticelloSmalltalkXProjectType_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   112
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   113
'monticelloSmalltalkXProjectType
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   114
    "Returns either #library or #application.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   115
     This information is used by Smalltalk/X when reading back Monticello package
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   116
     to patch my superclass as neither LibraryDefinition nor ApplicationDefinition classes
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   117
     are present in Squeak/Pharo images."
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   118
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   119
    ^%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   120
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   121
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   122
    "Created: / 30-05-2013 / 12:42:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   123
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   124
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   125
!MCStXSnapshotPreWriteTransformation methodsFor:'private'!
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   126
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   127
withoutNamespacePrefix: className
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   128
    "Strip Smalltalk/X-style namespace from given `className` (if any)"
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   129
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   130
    | lastColonIndex |
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   131
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   132
    lastColonIndex := className lastIndexOf: $:.
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   133
    lastColonIndex ~~ 0 ifTrue: [
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   134
        ^ className copyFrom: lastColonIndex + 1
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   135
    ].            
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   136
    ^ className
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   137
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   138
    "Created: / 20-09-2022 / 11:09:33 / Jan Vrany <jan.vrany@labware.com>"
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   139
! !
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   140
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   141
!MCStXSnapshotPreWriteTransformation methodsFor:'testing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   142
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   143
isExtensionMethodDefinition: definition
875
cc0588b2a9db class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 873
diff changeset
   144
    ^(transformed includesClassNamed: definition className) not
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   145
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   146
    "Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
875
cc0588b2a9db class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 873
diff changeset
   147
    "Modified: / 31-05-2013 / 01:16:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   148
!
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   149
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   150
isSmalltalkXPackage
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   151
    ^ projectDefinition notNil
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   152
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   153
    "Created: / 12-06-2013 / 09:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   154
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   155
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   156
!MCStXSnapshotPreWriteTransformation methodsFor:'transforming'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   157
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   158
transform: anMCSnapshot
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   159
    "Returns a transformed **copy** of the original snapshot"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   160
1002
54b4906215ca Introduced MCSnapshotOptions for more fine-graned control over contents of .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1001
diff changeset
   161
    includeExtrasForSTX := anMCSnapshot options includeExtrasForSTX.
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   162
    extensionMethodCategoryMap := OrderedCollection new.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   163
    original := anMCSnapshot.
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   164
    projectDefinition := self projectDefinition.
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   165
    super transform: anMCSnapshot.
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   166
    includeExtrasForSTX ifTrue:[
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   167
        (projectDefinition notNil and:[projectDefinition isPackageManifest not and:[extensionMethodCategoryMap notEmpty]]) ifTrue:[
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   168
            | source |
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   169
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   170
            source :=
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   171
                self monticelloSmalltalkXExtensionMethodCategories_Code bindWith:
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   172
                    (String streamContents:[:s|
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   173
                        extensionMethodCategoryMap do:[:entry|
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   174
                            s tab; tab; nextPutLine:  entry storeString
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   175
                        ].
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   176
                    ]).
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   177
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   178
             transformed definitions addFirst:
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   179
                (MCMethodDefinition
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   180
                    className:  projectDefinition name
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   181
                    classIsMeta: true
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   182
                    selector: 'monticelloSmalltalkXExtensionMethodCategories'
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   183
                    category: 'accessing - monticello'
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   184
                    timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   185
                    source: source)
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   186
        ].
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   187
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   188
    ^transformed.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   189
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   190
    "Created: / 31-05-2013 / 00:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1002
54b4906215ca Introduced MCSnapshotOptions for more fine-graned control over contents of .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1001
diff changeset
   191
    "Modified: / 07-09-2015 / 15:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   192
    "Modified: / 29-11-2021 / 14:46:02 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   193
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   194
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
!MCStXSnapshotPreWriteTransformation methodsFor:'visiting'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
1150
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   197
visitClassComment: definition
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   198
    | comment source |
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   199
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   200
    comment := definition comment asStringWithNativeLineEndings."/ Make sure comment has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   201
    comment := comment spacesToTabs.                            "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   202
    comment := comment asStringWithSqueakLineEndings.           "/ Make sure comment has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   203
    comment := comment asSingleByteStringIfPossible.            "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   204
    definition comment: comment.     
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   205
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   206
    source := definition source asStringWithNativeLineEndings.  "/ Make sure source has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   207
    source := source spacesToTabs.                              "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   208
    source := source asStringWithSqueakLineEndings.             "/ Make sure source has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   209
    source := source asSingleByteStringIfPossible.              "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   210
    definition source: source.
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   211
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   212
    "Created: / 17-09-2021 / 12:12:39 / Jan Vrany <jan.vrany@labware.com>"
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   213
    "Modified: / 17-09-2021 / 15:18:37 / Jan Vrany <jan.vrany@labware.com>"
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   214
!
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   215
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
visitClassDefinition: definition
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   217
    "
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   218
     save ProjectDefinition classes with Object as superclass   
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   219
     (because ProjectDefinition is not present in Pharo/Squeak).
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   220
     When reading back into ST/X, the PostReadTransformation undoes this
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   221
    "
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   222
    | comment exporter class |
1150
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   223
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   224
    comment := definition commentOrNil.
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   225
    comment notNil ifTrue: [
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   226
        comment := definition comment asStringWithNativeLineEndings."/ Make sure comment has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   227
        comment := comment spacesToTabs.                            "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   228
        comment := comment asStringWithSqueakLineEndings.           "/ Make sure comment has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   229
        comment := comment asSingleByteStringIfPossible.            "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   230
        definition comment: comment.     
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   231
    ].
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   233
    includeExtrasForSTX ifFalse: [ 
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   234
        definition className: (self withoutNamespacePrefix: definition className).
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   235
        definition superclassName: (self withoutNamespacePrefix: definition superclassName)
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   236
    ].
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   237
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   238
    exporter := original options exporter.
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   239
    exporter notNil ifTrue: [ definition accept: exporter].   
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   240
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
    class := definition actualClass.
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   242
    (class isProjectDefinition) ifTrue:[
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   243
        includeExtrasForSTX ifTrue:[            
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   244
            definition
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   245
    "/            className:(definition className capitalized);
1001
ab90b7b78d2a Transform project definition classes as subclasses of PackageManifest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
   246
                superclassName: #PackageManifest;
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   247
                category: class monticelloName.
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
   248
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   249
            transformed definitions addFirst:
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   250
                (MCMethodDefinition
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   251
                    className: definition className
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   252
                    classIsMeta: true
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   253
                    selector: 'monticelloProjectDefinitionTypeName'
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   254
                    category: 'accessing - monticello'
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   255
                    timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   256
                    source:
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   257
                        (self monticelloSmalltalkXProjectType_Code bindWith: (class isApplicationDefinition ifTrue:[#application] ifFalse:[#library]) storeString))
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   258
        ] ifFalse:[
1173
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   259
            definition superclassName ~= 'PackageManifest' ifTrue: [
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   260
                transformed definitions remove: definition.
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   261
                ^ self.
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   262
            ]
998
85a0b8dca6aa Oops, do not filter out project definition class when St/X extras should be kept...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 997
diff changeset
   263
        ].
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   264
    ].
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   265
1173
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   266
    (definition category startsWith: self monticelloName) ifFalse: [ 
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   267
        | defaultName |
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   268
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   269
        "FIXME: following is really nasty hack how to call super implementation"
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   270
        defaultName := (ProjectDefinition class >> #monticelloName) valueWithReceiver: projectDefinition.
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   271
        (definition category startsWith: defaultName) ifTrue: [ 
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   272
            definition category: self monticelloName , (definition category copyFrom: defaultName size + 1)
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   273
        ].
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   274
    ].
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   275
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    "Created: / 29-05-2013 / 12:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1001
ab90b7b78d2a Transform project definition classes as subclasses of PackageManifest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
   277
    "Modified: / 31-07-2015 / 09:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1173
e3dd2050492e Update class category to match package name if it does not
Jan Vrany <jan.vrany@labware.com>
parents: 1164
diff changeset
   278
    "Modified: / 11-07-2023 / 11:13:54 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   279
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   280
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   281
visitMethodDefinition: definition
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   282
    | class source exporter |
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   283
1151
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   284
    class := definition actualClass.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   285
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   286
    includeExtrasForSTX ifFalse:[
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   287
        "/ Remove all version_XX methods
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   288
        (AbstractSourceCodeManager isVersionMethodSelector: definition selector) ifTrue:[
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   289
            transformed definitions remove: definition.
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   290
        ].
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   291
988
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   292
        "/ If St/X extras should not be included, then remove all methods
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   293
        "/ that belong to project definition class.
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   294
        (class theNonMetaclass == projectDefinition and:[projectDefinition isPackageManifest not]) ifTrue:[ 
1160
1539e58bab91 Add utility method `MCRepository >> storePackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1155
diff changeset
   295
            transformed definitions remove: definition ifAbsent: [ "Might have been removed in previous step" ].
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   296
            ^ self.
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   297
        ].
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   298
    ].
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   299
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   300
    "/ Use source porter to perform automagic porting.
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   301
    "/ See MCSnapshotOptions >> exporter.
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   302
    exporter := original options exporter.
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   303
    exporter notNil ifTrue: [ definition accept: exporter].   
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   304
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   305
    includeExtrasForSTX ifFalse: [ 
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   306
        definition className: (self withoutNamespacePrefix: definition className)  
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   307
    ]. 
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   308
1151
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   309
    "/ Now a horrible hack - do not read the chunk below.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   310
    "/ In Squeak / Pharo world, the method source does not
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   311
    "/ (shall not?) contain trailing new lines. St/X browser,
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   312
    "/ OTOH, puts a trailing new line in methods' source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   313
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   314
    "/ So, when code is loaded into St/X and modified then saved 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   315
    "/ back, it adds an spurious extra trailing line. This creates
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   316
    "/ a noise, especially when using Tonel.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   317
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   318
    "/ It gets worse. I (JV) did not pay attention to this problem
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   319
    "/ before and start hacking, already adding a spurious new lines
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   320
    "/ to considerable codebase - too bad.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   321
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   322
    "/ To fix while avoiding noise in diffs, we remove trailing newlines
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   323
    "/ for modified methods. However, we have to save back source without
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   324
    "/ trailing new lines to the method itself so that when the package is
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   325
    "/ saved again from the same image, it won't add the new line (because
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   326
    "/ second time the method is no longer 'modified').
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   327
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   328
    "/ Complicated, isn't it? Stupid, isn't it?
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   329
    source := definition source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   330
    (source last == Character lf or: [ source last == Character return ]) ifTrue: [ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   331
        (ChangeSet current includesChangeForClass: class selector: definition selector) ifTrue: [ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   332
            | method |
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   333
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   334
            source := source withoutTrailingSeparators.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   335
            method := class compiledMethodAt: definition selector.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   336
            method source: source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   337
        ].
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   338
    ].
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   339
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   340
    source := source asStringWithNativeLineEndings.  "/ Make sure source has native line endings
1145
ee708f06f612 Use (newer) `#spacesToTabs` and `#tabsToSpaces` in St/X transformation
Jan Vrany <jan.vrany@labware.com>
parents: 1131
diff changeset
   341
    source := source spacesToTabs.                              "/ Make sure there are only tabs (norm on Squeak / Pharo)
992
f46203ad6470 .mcz reading/writing: change indentation of method source to respect platform's convention
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 988
diff changeset
   342
    source := source asStringWithSqueakLineEndings.             "/ Make sure source has Squeak line endings
f46203ad6470 .mcz reading/writing: change indentation of method source to respect platform's convention
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 988
diff changeset
   343
    source := source asSingleByteStringIfPossible.              "/ Convert to single byte string
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   344
    definition source: source.
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   345
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   346
    (self isExtensionMethodDefinition: definition) ifTrue:[
936
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   347
        | prefix |
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   348
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   349
        prefix := '*' , self monticelloName asLowercase.
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   350
        (definition category asLowercase startsWith: prefix) ifFalse:[
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   351
            extensionMethodCategoryMap add:
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   352
                (Array
936
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   353
                    with: definition className , (definition classIsMeta ifTrue:[' class'] ifFalse:[''])
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   354
                    with: definition selector
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   355
                    with: definition category).
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   356
            definition category: '*' , self monticelloName.
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   357
        ]
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   358
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   359
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   360
    "Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
997
c9b7bdd4088a Oops, do not include methods for removed project definition class!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 992
diff changeset
   361
    "Modified: / 10-05-2015 / 15:08:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1163
diff changeset
   362
    "Modified: / 20-09-2022 / 16:56:55 / Jan Vrany <jan.vrany@labware.com>"
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   363
!
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   364
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   365
visitOrganizationDefinition: defintion
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   366
    "Add a category in which project definition class is..."
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   367
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   368
    | categories |
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   369
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   370
    projectDefinition notNil ifTrue: [
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   371
        categories := defintion categories.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   372
        (categories includes: projectDefinition monticelloName) ifFalse:[
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   373
            categories := categories copyWith: projectDefinition monticelloName asSymbol.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   374
            defintion categories: categories.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   375
        ].
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   376
    ].
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   377
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   378
    "Created: / 05-10-2014 / 00:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   379
    "Modified: / 04-05-2021 / 11:42:08 / Jan Vrany <jan.vrany@labware.com>"
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
version
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   385
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
version_CVS
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   389
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $'
988
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   390
!
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   391
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   392
version_HG
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   393
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   394
    ^ '$Changeset: <not expanded> $'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396