author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Fri, 24 Apr 2015 12:49:54 +0100 | |
branch | jv |
changeset 987 | 7dbc6348209e |
parent 977 | f95b01954348 |
child 988 | 536fd853efeb |
permissions | -rw-r--r-- |
842 | 1 |
"{ Package: 'stx:goodies/monticello' }" |
2 |
||
977
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
3 |
"{ NameSpace: Smalltalk }" |
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
4 |
|
842 | 5 |
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
|
6 |
instanceVariableNames:'extensionMethodCategoryMap projectDefinition includeExtrasForSTX' |
842 | 7 |
classVariableNames:'' |
8 |
poolDictionaries:'' |
|
9 |
category:'SCM-Monticello-St/X Storing' |
|
10 |
! |
|
11 |
||
12 |
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'! |
|
13 |
||
14 |
documentation |
|
15 |
" |
|
16 |
documentation to be added. |
|
17 |
||
18 |
[author:] |
|
19 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
|
20 |
||
21 |
[instance variables:] |
|
22 |
||
23 |
[class variables:] |
|
24 |
||
25 |
[see also:] |
|
26 |
||
27 |
" |
|
28 |
! ! |
|
29 |
||
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
|
30 |
!MCStXSnapshotPreWriteTransformation class methodsFor:'transforming'! |
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
|
31 |
|
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
|
32 |
transform: anMCSnapshot |
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
|
33 |
"Returns a transformed **copy** of the original snapshot" |
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
|
34 |
|
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
|
35 |
^self new transform: anMCSnapshot includeExtrasForSTX: 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
|
36 |
|
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
|
37 |
"Created: / 23-04-2015 / 23:17:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
38 |
! |
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
|
39 |
|
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
|
40 |
transform: anMCSnapshot includeExtrasForSTX: aBoolean |
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
|
41 |
^self new transform: anMCSnapshot includeExtrasForSTX: aBoolean |
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
|
42 |
|
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
|
43 |
"Created: / 23-04-2015 / 23:16:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
44 |
! ! |
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
|
45 |
|
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
46 |
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing'! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
47 |
|
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
48 |
monticelloName |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
49 |
| def | |
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 |
def := self projectDefinition. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
52 |
^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
|
53 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
54 |
"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
|
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 |
projectDefinition |
877
493a70407896
class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
875
diff
changeset
|
58 |
original definitions reverseDo:[:d| |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
59 |
| c | |
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
60 |
(d isClassDefinition |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
61 |
and:[(c := d actualClass) notNil |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
62 |
and:[c isProjectDefinition]]) |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
63 |
ifTrue:[ ^ c ] |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
64 |
]. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
65 |
^nil |
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 |
"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
|
68 |
"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
|
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 |
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing - templates'! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
72 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
73 |
monticelloSmalltalkXExtensionMethodCategories_Code |
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 |
'monticelloSmalltalkXExtensionMethodCategor |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
76 |
"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
|
77 |
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
|
78 |
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
|
79 |
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
|
80 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
81 |
^#( |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
82 |
%1 |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
83 |
) |
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: / 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
|
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 |
monticelloSmalltalkXProjectType_Code |
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 |
'monticelloSmalltalkXProjectType |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
92 |
"Returns either #library or #application. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
93 |
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
|
94 |
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
|
95 |
are present in Squeak/Pharo images." |
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 |
^%1 |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
98 |
' |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
99 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
100 |
"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
|
101 |
! ! |
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 |
!MCStXSnapshotPreWriteTransformation methodsFor:'testing'! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
104 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
105 |
isExtensionMethodDefinition: definition |
875
cc0588b2a9db
class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
873
diff
changeset
|
106 |
^(transformed includesClassNamed: definition className) not |
863
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: / 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
|
109 |
"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
|
110 |
! |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
111 |
|
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
112 |
isSmalltalkXPackage |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
113 |
^ projectDefinition notNil |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
114 |
|
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
115 |
"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
|
116 |
! ! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
117 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
118 |
!MCStXSnapshotPreWriteTransformation methodsFor:'transforming'! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
119 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
120 |
transform: anMCSnapshot |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
121 |
"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
|
122 |
|
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
|
123 |
includeExtrasForSTX := anMCSnapshot includeExtrasForSTX. |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
124 |
extensionMethodCategoryMap := OrderedCollection new. |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
125 |
original := anMCSnapshot. |
886
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
126 |
projectDefinition := self projectDefinition. |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
127 |
projectDefinition isNil ifTrue:[ |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
128 |
"/ Not a Smalltalk/X package - no transformation |
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
129 |
transformed := original. |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
130 |
^transformed |
886
850e6b54a054
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
877
diff
changeset
|
131 |
]. |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
132 |
super transform: anMCSnapshot. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
133 |
(projectDefinition notNil and:[extensionMethodCategoryMap notEmpty]) ifTrue:[ |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
134 |
| source | |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
135 |
|
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
136 |
source := |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
137 |
self monticelloSmalltalkXExtensionMethodCategories_Code bindWith: |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
138 |
(String streamContents:[:s| |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
139 |
extensionMethodCategoryMap do:[:entry| |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
140 |
s tab; tab; nextPutLine: entry storeString |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
141 |
]. |
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 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
144 |
transformed definitions addFirst: |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
145 |
(MCMethodDefinition |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
146 |
className: projectDefinition name |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
147 |
classIsMeta: true |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
148 |
selector: 'monticelloSmalltalkXExtensionMethodCategories' |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
149 |
category: 'accessing - monticello' |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
150 |
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
|
151 |
source: source) |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
152 |
]. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
153 |
^transformed. |
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 |
"Created: / 31-05-2013 / 00:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
156 |
"Modified: / 24-04-2015 / 12:39:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
157 |
! |
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
|
158 |
|
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
|
159 |
transform: anMCSnapshot includeExtrasForSTX: aBoolean |
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
|
160 |
includeExtrasForSTX := aBoolean. |
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
|
161 |
^ self transform: anMCSnapshot |
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
|
162 |
|
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
|
163 |
"Created: / 23-04-2015 / 23:17:44 / 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
|
164 |
! ! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
165 |
|
842 | 166 |
!MCStXSnapshotPreWriteTransformation methodsFor:'visiting'! |
167 |
||
168 |
visitClassDefinition: definition |
|
977
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
169 |
" |
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
170 |
save ProjectDefinition classes with Object as superclass |
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
171 |
(because ProjectDefinition is not present in Pharo/Squeak). |
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
172 |
When reading back into ST/X, the PostReadTransformation undoes this |
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
173 |
" |
842 | 174 |
| class | |
175 |
||
176 |
class := definition actualClass. |
|
177 |
class isProjectDefinition 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
|
178 |
transformed definitions remove: 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
|
179 |
includeExtrasForSTX ifTrue:[ |
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
|
180 |
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
|
181 |
"/ className:(definition className capitalized); |
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
|
182 |
superclassName: #Object; |
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
|
183 |
category: class monticelloName. |
877
493a70407896
class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
875
diff
changeset
|
184 |
|
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
|
185 |
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
|
186 |
(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
|
187 |
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
|
188 |
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
|
189 |
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
|
190 |
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
|
191 |
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
|
192 |
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
|
193 |
(self monticelloSmalltalkXProjectType_Code bindWith: (class isApplicationDefinition ifTrue:[#application] ifFalse:[#library]) storeString)) |
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
|
194 |
] |
873
8c7a9dcb9a69
class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
863
diff
changeset
|
195 |
] |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
196 |
|
842 | 197 |
"Created: / 29-05-2013 / 12:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
198 |
"Modified: / 23-04-2015 / 23:26:16 / 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
|
199 |
! |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
200 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
201 |
visitMethodDefinition: definition |
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
|
202 |
| class 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
|
203 |
|
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
|
204 |
"/ If St/X extras should not be included, then remove all methods |
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
|
205 |
"/ that belong to project definition class. |
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
|
206 |
includeExtrasForSTX ifFalse:[ |
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
|
207 |
class := definition actualClass. |
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
|
208 |
class == projectDefinition ifTrue:[ |
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
|
209 |
transformed definitions remove: 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
|
210 |
^ 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
|
211 |
]. |
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
|
212 |
]. |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
213 |
|
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
214 |
source := definition source asStringWithNativeLineEndings asStringCollection withTabs asStringWithSqueakLineEndings. |
977
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
215 |
source := source asSingleByteStringIfPossible. |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
216 |
definition source: source. |
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
217 |
|
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
218 |
(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
|
219 |
| 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
|
220 |
|
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
|
221 |
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
|
222 |
(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
|
223 |
extensionMethodCategoryMap add: |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
224 |
(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
|
225 |
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
|
226 |
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
|
227 |
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
|
228 |
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
|
229 |
] |
863
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
230 |
]. |
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
231 |
|
310347ceb9df
More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
842
diff
changeset
|
232 |
"Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
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
|
233 |
"Modified: / 23-04-2015 / 23:31:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
932
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
234 |
! |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
235 |
|
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
236 |
visitOrganizationDefinition: defintion |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
237 |
"Add a category in which project definition class is..." |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
238 |
|
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
239 |
| categories | |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
240 |
|
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
241 |
categories := defintion categories. |
938
f544f968df1d
Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
936
diff
changeset
|
242 |
(categories includes: projectDefinition monticelloName) ifFalse:[ |
932
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
243 |
categories := categories copyWith: projectDefinition monticelloName asSymbol. |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
244 |
defintion categories: categories. |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
245 |
]. |
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
246 |
|
b74cf6420afc
Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
898
diff
changeset
|
247 |
"Created: / 05-10-2014 / 00:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
842 | 248 |
! ! |
249 |
||
250 |
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'! |
|
251 |
||
252 |
version |
|
977
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
253 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $' |
842 | 254 |
! |
255 |
||
256 |
version_CVS |
|
977
f95b01954348
class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents:
938
diff
changeset
|
257 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $' |
842 | 258 |
! ! |
259 |