MCStXSnapshotPreWriteTransformation.st
author Claus Gittinger <cg@exept.de>
Thu, 03 Nov 2016 13:22:28 +0100
changeset 1014 8e77e7bafd66
parent 977 f95b01954348
child 987 7dbc6348209e
permissions -rw-r--r--
#BUGFIX by cg class: MCMczWriter changed: #flush obsolete method called.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     1
"{ Encoding: utf8 }"
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     2
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ Package: 'stx:goodies/monticello' }"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     5
"{ NameSpace: Smalltalk }"
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     6
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
MCStXSnapshotTransformation subclass:#MCStXSnapshotPreWriteTransformation
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
     8
	instanceVariableNames:'extensionMethodCategoryMap projectDefinition'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	classVariableNames:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	poolDictionaries:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	category:'SCM-Monticello-St/X Storing'
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!
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
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
documentation
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    documentation to be added.
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    [author:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
        Jan Vrany <jan.vrany@fit.cvut.cz>
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    [instance variables:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    [class variables:]
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
    [see also:]
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
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    32
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    33
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    34
monticelloName
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    35
    | def |
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    36
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    37
    def := self projectDefinition.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    38
    ^def notNil ifTrue:[def monticelloName] ifFalse:[nil]
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    39
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    40
    "Created: / 31-05-2013 / 00:12:27 / 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
    41
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    42
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    43
projectDefinition
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
    44
    original definitions reverseDo:[:d|
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    45
        | c |
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    46
        (d isClassDefinition
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    47
            and:[(c := d actualClass) notNil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    48
                and:[c isProjectDefinition]])
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    49
                    ifTrue:[ ^ c  ]
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    50
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    51
    ^nil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    52
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    53
    "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
    54
    "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
    55
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    56
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    57
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing - templates'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    58
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    59
monticelloSmalltalkXExtensionMethodCategories_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    60
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    61
'monticelloSmalltalkXExtensionMethodCategor
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    62
    "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
    63
     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
    64
     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
    65
     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
    66
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    67
    ^#(
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    68
%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    69
    )
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    70
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    71
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    72
    "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
    73
!
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
monticelloSmalltalkXProjectType_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    76
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    77
'monticelloSmalltalkXProjectType
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    78
    "Returns either #library or #application.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    79
     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
    80
     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
    81
     are present in Squeak/Pharo images."
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    82
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    83
    ^%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    84
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    85
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    86
    "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
    87
! !
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
!MCStXSnapshotPreWriteTransformation methodsFor:'testing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    90
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    91
isExtensionMethodDefinition: definition
875
cc0588b2a9db class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 873
diff changeset
    92
    ^(transformed includesClassNamed: definition className) not
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    93
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    94
    "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
    95
    "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
    96
!
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
    97
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
    98
isSmalltalkXPackage
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
    99
    ^ projectDefinition notNil
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   100
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   101
    "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
   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
!MCStXSnapshotPreWriteTransformation methodsFor:'transforming'!
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
transform: anMCSnapshot
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   107
    "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
   108
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   109
    extensionMethodCategoryMap := OrderedCollection new.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   110
    original := anMCSnapshot.
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   111
    projectDefinition := self projectDefinition.
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   112
    projectDefinition isNil ifTrue:[
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   113
        "/ Not a Smalltalk/X package - no transformation
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   114
        transformed := original.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   115
        ^transformed
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   116
    ].
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   117
    super transform: anMCSnapshot.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   118
    (projectDefinition notNil and:[extensionMethodCategoryMap notEmpty]) ifTrue:[
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   119
        | source |
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   120
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   121
        source :=
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   122
            self monticelloSmalltalkXExtensionMethodCategories_Code bindWith:
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   123
                (String streamContents:[:s|
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   124
                    extensionMethodCategoryMap do:[:entry|
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   125
                        s tab; tab; nextPutLine:  entry storeString
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   126
                    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   127
                ]).
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   128
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   129
         transformed definitions addFirst:
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   130
            (MCMethodDefinition
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   131
                className:  projectDefinition name
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   132
                classIsMeta: true
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   133
                selector: 'monticelloSmalltalkXExtensionMethodCategories'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   134
                category: 'accessing - monticello'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   135
                timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   136
                source: source)
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   137
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   138
    ^transformed.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   139
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   140
    "Created: / 31-05-2013 / 00:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   141
    "Modified (format): / 12-06-2013 / 09:23:47 / 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
   142
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   143
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
!MCStXSnapshotPreWriteTransformation methodsFor:'visiting'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
visitClassDefinition: definition
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   147
    "
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   148
     save ProjectDefinition classes with Object as superclass   
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   149
     (because ProjectDefinition is not present in Pharo/Squeak).
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   150
     When reading back into ST/X, the PostReadTransformation undoes this
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   151
    "
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    | class |
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    class := definition actualClass.
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    class isProjectDefinition ifTrue:[
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        definition
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
   157
"/            className:(definition className capitalized);
898
728e7cbc9af0 Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 886
diff changeset
   158
            superclassName: #Object;
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
            category: class monticelloName.
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
   160
873
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   161
        transformed definitions addFirst:
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   162
            (MCMethodDefinition
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   163
                className: definition className
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   164
                classIsMeta: true
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   165
                selector: 'monticelloProjectDefinitionTypeName'
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   166
                category: 'accessing - monticello'
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   167
                timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   168
                source:
873
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   169
                    (self monticelloSmalltalkXProjectType_Code bindWith: (class isApplicationDefinition ifTrue:[#application] ifFalse:[#library]) storeString))
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   170
    ]
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   171
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    "Created: / 29-05-2013 / 12:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
898
728e7cbc9af0 Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 886
diff changeset
   173
    "Modified: / 20-09-2013 / 00:14:04 / 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
   174
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   175
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   176
visitMethodDefinition: definition
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   177
    | source|
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   178
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   179
    source := definition source asStringWithNativeLineEndings asStringCollection withTabs asStringWithSqueakLineEndings.
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   180
    source := source asSingleByteStringIfPossible.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   181
    definition source: source.
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   182
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   183
    (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
   184
        | 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
   185
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
   186
        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
   187
        (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
   188
            extensionMethodCategoryMap add:
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   189
                (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
   190
                    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
   191
                    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
   192
                    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
   193
            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
   194
        ]
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   195
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   196
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   197
    "Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   198
    "Modified: / 06-11-2014 / 03:11:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   199
!
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   200
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   201
visitOrganizationDefinition: defintion
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   202
    "Add a category in which project definition class is..."
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   203
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   204
    | categories |
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   205
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   206
    categories := defintion categories.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   207
    (categories includes: projectDefinition monticelloName) ifFalse:[
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   208
        categories := categories copyWith: projectDefinition monticelloName asSymbol.
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   209
        defintion categories: categories.
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   210
    ].
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   211
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   212
    "Created: / 05-10-2014 / 00:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
version
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   218
    ^ '$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
   219
!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
version_CVS
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   222
    ^ '$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
   223
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224