author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 18 Sep 2012 18:24:44 +0000 | |
changeset 16 | 25ac697dc747 |
parent 14 | f01fe37493e9 |
child 19 | 28c344380944 |
permissions | -rw-r--r-- |
11
d354ac2af7ec
Metacello package refactoring - phase 2~
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
10
diff
changeset
|
1 |
"{ Package: 'stx:goodies/metacello/core' }" |
1 | 2 |
|
3 |
MetacelloSpec subclass:#MetacelloProjectSpec |
|
4 |
instanceVariableNames:'name className versionString operator loads preLoadDoIt |
|
5 |
postLoadDoIt' |
|
6 |
classVariableNames:'' |
|
7 |
poolDictionaries:'' |
|
8 |
category:'Metacello-Core-Specs' |
|
9 |
! |
|
10 |
||
11 |
||
12 |
!MetacelloProjectSpec methodsFor:'accessing'! |
|
13 |
||
14 |
className: aString |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
15 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
16 |
className := aString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
17 |
! |
1 | 18 |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
19 |
file |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
20 |
^ nil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
21 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
22 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
23 |
getClassName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
24 |
"raw access to iv" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
25 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
26 |
^ className |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
27 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
28 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
29 |
getFile |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
30 |
"raw access to iv" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
31 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
32 |
^ nil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
33 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
34 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
35 |
getOperator |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
36 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
37 |
^operator |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
38 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
39 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
40 |
getRepositories |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
41 |
"raw access to iv" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
42 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
43 |
^ nil |
1 | 44 |
! |
45 |
||
46 |
loads: aCollection |
|
47 |
||
48 |
aCollection setLoadsInMetacelloProject: self |
|
49 |
! |
|
50 |
||
51 |
name: aString |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
52 |
((aString at: 1) isSeparator or: [ (aString at: aString size) isSeparator ]) |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
53 |
ifTrue: [ self error: 'Names are not allowed to have leading or trailing blanks: ' , aString printString ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
54 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
55 |
name := aString |
1 | 56 |
! |
57 |
||
58 |
operator: anObject |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
59 |
" #= #~= #> #< #>= #<= #~> " |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
60 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
61 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
62 |
operator := anObject |
1 | 63 |
! |
64 |
||
65 |
postLoadDoIt: anObject |
|
66 |
||
67 |
anObject setPostLoadDoItInMetacelloSpec: self |
|
68 |
! |
|
69 |
||
70 |
preLoadDoIt: anObject |
|
71 |
||
72 |
anObject setPreLoadDoItInMetacelloSpec: self |
|
73 |
! |
|
74 |
||
75 |
setPostLoadDoIt: aSymbol |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
76 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
77 |
postLoadDoIt := aSymbol |
1 | 78 |
! |
79 |
||
80 |
setPreLoadDoIt: aSymbol |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
81 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
82 |
preLoadDoIt := aSymbol |
1 | 83 |
! |
84 |
||
85 |
versionString: anObject |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
86 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
87 |
versionString := anObject |
1 | 88 |
! ! |
89 |
||
90 |
!MetacelloProjectSpec methodsFor:'adding'! |
|
91 |
||
92 |
addToMetacelloPackages: aMetacelloPackagesSpec |
|
93 |
||
94 |
| spec | |
|
95 |
spec := (aMetacelloPackagesSpec project projectReferenceSpec) |
|
96 |
name: self name; |
|
97 |
projectReference: self copy; |
|
98 |
yourself. |
|
99 |
aMetacelloPackagesSpec addMember: |
|
100 |
(aMetacelloPackagesSpec addMember |
|
101 |
name: spec name; |
|
102 |
spec: spec; |
|
103 |
yourself) |
|
104 |
||
105 |
! ! |
|
106 |
||
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
107 |
!MetacelloProjectSpec methodsFor:'construction'! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
108 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
109 |
className: aString constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
110 |
aVersionConstructor classNameForProject: aString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
111 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
112 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
113 |
loads: anObject constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
114 |
aVersionConstructor loadsForProject: anObject |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
115 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
116 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
117 |
name: aString constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
118 |
aVersionConstructor nameForProject: aString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
119 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
120 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
121 |
operator: anObject constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
122 |
aVersionConstructor operatorForProject: anObject |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
123 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
124 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
125 |
postLoadDoIt: aSymbol constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
126 |
aVersionConstructor postLoadDoItForProject: aSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
127 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
128 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
129 |
preLoadDoIt: aSymbol constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
130 |
aVersionConstructor preLoadDoItForProject: aSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
131 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
132 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
133 |
version: anObject constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
134 |
aVersionConstructor versionForProject: anObject |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
135 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
136 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
137 |
versionString: anObject constructor: aVersionConstructor |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
138 |
aVersionConstructor versionStringForProject: anObject |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
139 |
! ! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
140 |
|
1 | 141 |
!MetacelloProjectSpec methodsFor:'loading'! |
142 |
||
143 |
load |
|
144 |
||
145 |
self subclassResponsibility |
|
146 |
! ! |
|
147 |
||
148 |
!MetacelloProjectSpec methodsFor:'merging'! |
|
149 |
||
150 |
mergeMap |
|
151 |
||
152 |
| map | |
|
153 |
map := super mergeMap. |
|
154 |
map at: #name put: name. |
|
155 |
map at: #className put: className. |
|
156 |
map at: #versionString put: versionString. |
|
157 |
map at: #operator put: operator. |
|
158 |
map at: #loads put: loads. |
|
159 |
map at: #preLoadDoIt put: preLoadDoIt. |
|
160 |
map at: #postLoadDoIt put: postLoadDoIt. |
|
161 |
^map |
|
162 |
! ! |
|
163 |
||
164 |
!MetacelloProjectSpec methodsFor:'printing'! |
|
165 |
||
166 |
configMethodBodyOn: aStream indent: indent |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
167 |
| hasVersionString hasOperator hasProjectPackage hasLoads hasClassName hasPreLoadDoIt hasPostLoadDoIt | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
168 |
hasClassName := self hasClassName. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
169 |
hasVersionString := self versionString ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
170 |
hasOperator := operator ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
171 |
hasProjectPackage := self hasRepository or: [ hasClassName & (self getFile ~~ nil or: [ className ~= self name ]) ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
172 |
hasLoads := self loads ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
173 |
hasPreLoadDoIt := self getPreLoadDoIt ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
174 |
hasPostLoadDoIt := self getPostLoadDoIt ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
175 |
hasClassName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
176 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
177 |
hasVersionString | hasOperator | hasProjectPackage | hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
178 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
179 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
180 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
181 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
182 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
183 |
aStream nextPutAll: 'className: ' , self className printString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
184 |
hasVersionString | hasPreLoadDoIt | hasPostLoadDoIt | hasOperator | hasLoads | hasProjectPackage |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
185 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
186 |
hasVersionString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
187 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
188 |
| vs | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
189 |
hasClassName | hasOperator | hasProjectPackage | hasLoads | hasPreLoadDoIt | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
190 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
191 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
192 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
193 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
194 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
195 |
vs := self versionString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
196 |
aStream nextPutAll: 'versionString: '. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
197 |
vs isSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
198 |
ifTrue: [ aStream nextPut: $# ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
199 |
aStream nextPutAll: vs asString printString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
200 |
hasPreLoadDoIt | hasPostLoadDoIt | hasOperator | hasProjectPackage | hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
201 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
202 |
hasPreLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
203 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
204 |
hasClassName | hasOperator | hasProjectPackage | hasLoads | hasPreLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
205 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
206 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
207 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
208 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
209 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
210 |
aStream nextPutAll: 'preLoadDoIt: '. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
211 |
self preLoadDoIt value isSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
212 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
213 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
214 |
nextPut: $#; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
215 |
nextPutAll: self preLoadDoIt value asString printString ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
216 |
ifFalse: [ aStream nextPutAll: self preLoadDoIt value asString ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
217 |
hasPostLoadDoIt | hasOperator | hasProjectPackage | hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
218 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
219 |
hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
220 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
221 |
hasClassName | hasOperator | hasProjectPackage | hasLoads | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
222 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
223 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
224 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
225 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
226 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
227 |
aStream nextPutAll: 'postLoadDoIt: '. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
228 |
self postLoadDoIt value isSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
229 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
230 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
231 |
nextPut: $#; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
232 |
nextPutAll: self postLoadDoIt value asString printString ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
233 |
ifFalse: [ aStream nextPutAll: self postLoadDoIt value asString ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
234 |
hasOperator | hasProjectPackage | hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
235 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
236 |
hasOperator |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
237 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
238 |
hasClassName | hasVersionString | hasProjectPackage | hasLoads | hasPreLoadDoIt | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
239 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
240 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
241 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
242 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
243 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
244 |
aStream nextPutAll: 'operator: #' , self operator asString printString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
245 |
hasProjectPackage | hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
246 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
247 |
hasLoads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
248 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
249 |
hasClassName | hasVersionString | hasOperator | hasProjectPackage | hasPreLoadDoIt | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
250 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
251 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
252 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
253 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
254 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
255 |
aStream nextPutAll: 'loads: #('. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
256 |
self loads do: [ :str | aStream nextPutAll: str printString , ' ' ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
257 |
aStream nextPut: $). |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
258 |
hasProjectPackage |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
259 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
260 |
hasProjectPackage |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
261 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
262 |
| hasName hasRepo | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
263 |
hasRepo := self hasRepository. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
264 |
hasName := self file ~= self className. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
265 |
hasName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
266 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
267 |
hasClassName | hasVersionString | hasOperator | hasLoads | hasPreLoadDoIt | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
268 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
269 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
270 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
271 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
272 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
273 |
aStream nextPutAll: 'file: ' , self file printString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
274 |
hasRepo |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
275 |
ifTrue: [ aStream nextPut: $; ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
276 |
hasRepo |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
277 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
278 |
| repos | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
279 |
repos := self repositories map values. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
280 |
repos size = 1 |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
281 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
282 |
hasClassName | hasVersionString | hasOperator | hasLoads | hasPreLoadDoIt | hasPostLoadDoIt | hasName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
283 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
284 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
285 |
cr; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
286 |
tab: indent + 1 ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
287 |
ifFalse: [ aStream space ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
288 |
repos first configMethodCascadeOn: aStream lastCascade: true ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
289 |
ifFalse: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
290 |
aStream cr. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
291 |
self repositories configMethodCascadeOn: aStream indent: indent ] ] ] |
1 | 292 |
! |
293 |
||
294 |
configMethodOn: aStream indent: indent |
|
295 |
||
296 |
aStream |
|
297 |
tab: indent; |
|
298 |
nextPutAll: 'spec '; cr; |
|
299 |
tab: indent + 1; |
|
300 |
nextPutAll: 'name: ', self name printString, ';'. |
|
301 |
self configMethodBodyOn: aStream indent: indent. |
|
302 |
aStream nextPut: $. |
|
303 |
! |
|
304 |
||
305 |
configShortCutMethodOn: aStream member: aMember indent: indent |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
306 |
| hasVersionString hasOperator hasProjectPackage hasLoads hasClassName hasPreLoadDoIt hasPostLoadDoIt | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
307 |
hasClassName := self hasClassName. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
308 |
hasVersionString := self versionString ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
309 |
hasOperator := operator ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
310 |
hasProjectPackage := self hasRepository or: [ hasClassName & (self getFile ~~ nil or: [ className ~= self name ]) ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
311 |
hasLoads := self loads ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
312 |
hasPreLoadDoIt := self getPreLoadDoIt ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
313 |
hasPostLoadDoIt := self getPostLoadDoIt ~~ nil. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
314 |
hasClassName | hasOperator | hasProjectPackage | hasLoads | hasPreLoadDoIt | hasPostLoadDoIt |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
315 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
316 |
(aMember methodUpdateSelector == #'copy:' or: [ aMember methodUpdateSelector == #'with:' ]) |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
317 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
318 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
319 |
nextPutAll: 'with: ['; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
320 |
cr ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
321 |
ifFalse: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
322 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
323 |
nextPutAll: 'overrides: ['; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
324 |
cr ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
325 |
aStream |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
326 |
tab: indent; |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
327 |
nextPutAll: 'spec'. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
328 |
self configMethodBodyOn: aStream indent: indent. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
329 |
aStream nextPutAll: ' ]'. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
330 |
^ self ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
331 |
hasVersionString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
332 |
ifTrue: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
333 |
| vs | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
334 |
vs := self versionString. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
335 |
aStream nextPutAll: 'with: '. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
336 |
vs isSymbol |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
337 |
ifTrue: [ aStream nextPut: $# ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
338 |
aStream nextPutAll: vs asString printString ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
339 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
340 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
341 |
hasClassName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
342 |
^ className ~~ nil |
1 | 343 |
! |
344 |
||
345 |
label |
|
346 |
||
347 |
^self name |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
348 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
349 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
350 |
projectLabel |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
351 |
^ 'project' |
1 | 352 |
! ! |
353 |
||
354 |
!MetacelloProjectSpec methodsFor:'private'! |
|
355 |
||
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
356 |
constructClassName |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
357 |
^ nil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
358 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
359 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
360 |
loadListForVersion: vrsn |
1 | 361 |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
362 |
^ (self loads == nil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
363 |
or: [self loads isEmpty]) |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
364 |
ifTrue: [vrsn spec defaultPackageNames] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
365 |
ifFalse: [self loads] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
366 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
367 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
368 |
setLoads: aCollection |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
369 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
370 |
loads := aCollection |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
371 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
372 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
373 |
setName: aStringOrNil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
374 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
375 |
name := aStringOrNil |
1 | 376 |
! ! |
377 |
||
378 |
!MetacelloProjectSpec methodsFor:'querying'! |
|
379 |
||
380 |
className |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
381 |
className ifNil: [ self name ifNotNil: [ self className: self constructClassName ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
382 |
^ className |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
383 |
! |
1 | 384 |
|
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
385 |
currentlyLoadedClassesInVersion |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
386 |
self versionOrNil ifNotNil: [ :vrsn | ^ vrsn currentlyLoadedClassesInVersion ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
387 |
^ #() |
1 | 388 |
! |
389 |
||
390 |
getPostLoadDoIt |
|
391 |
||
392 |
^postLoadDoIt |
|
393 |
! |
|
394 |
||
395 |
getPreLoadDoIt |
|
396 |
||
397 |
^preLoadDoIt |
|
398 |
! |
|
399 |
||
400 |
loads |
|
401 |
^ loads |
|
402 |
! |
|
403 |
||
404 |
name |
|
405 |
||
406 |
^name |
|
407 |
! |
|
408 |
||
409 |
operator |
|
410 |
||
411 |
operator == nil ifTrue: [ ^#>= ]. |
|
412 |
^ operator |
|
413 |
! |
|
414 |
||
415 |
postLoadDoIt |
|
416 |
||
417 |
^postLoadDoIt |
|
418 |
! |
|
419 |
||
420 |
preLoadDoIt |
|
421 |
||
422 |
^preLoadDoIt |
|
423 |
! |
|
424 |
||
425 |
projectPackage |
|
426 |
||
427 |
^nil |
|
428 |
! |
|
429 |
||
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
430 |
version |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
431 |
self subclassResponsibility |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
432 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
433 |
|
1 | 434 |
versionKey |
435 |
"suitable for using as a unique key for the receiver's version in a dictionary" |
|
436 |
||
437 |
^ self version versionKey |
|
438 |
! |
|
439 |
||
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
440 |
versionOrNil |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
441 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
442 |
^[ self version ] on: MetacelloVersionDoesNotExistError do: [:ex | ^nil ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
443 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
444 |
|
1 | 445 |
versionString |
446 |
^ versionString |
|
447 |
! ! |
|
448 |
||
16
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
449 |
!MetacelloProjectSpec methodsFor:'scripting'! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
450 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
451 |
asProjectRegistration |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
452 |
^ MetacelloProjectRegistration fromProjectSpec: self |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
453 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
454 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
455 |
canDowngradeTo: aMetacelloProjectSpec |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
456 |
(self className = aMetacelloProjectSpec className and: [ self operator == aMetacelloProjectSpec operator ]) |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
457 |
ifFalse: [ ^ false ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
458 |
^ (aMetacelloProjectSpec version perform: self operator with: self version) not |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
459 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
460 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
461 |
canUpgradeTo: aMetacelloProjectSpec |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
462 |
(self className = aMetacelloProjectSpec className and: [ self operator == aMetacelloProjectSpec operator ]) |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
463 |
ifFalse: [ ^ false ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
464 |
^ aMetacelloProjectSpec version perform: self operator with: self version |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
465 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
466 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
467 |
compareEqual: aMetacelloProjectSpec |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
468 |
"name className versionString operator loads preLoadDoIt postLoadDoIt" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
469 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
470 |
^ self className = aMetacelloProjectSpec className |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
471 |
and: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
472 |
self versionString = aMetacelloProjectSpec versionString |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
473 |
and: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
474 |
self operator == aMetacelloProjectSpec operator |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
475 |
and: [ |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
476 |
self loads = aMetacelloProjectSpec loads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
477 |
and: [ self preLoadDoIt == aMetacelloProjectSpec preLoadDoIt and: [ self postLoadDoIt == aMetacelloProjectSpec postLoadDoIt ] ] ] ] ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
478 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
479 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
480 |
mergeScriptLoads: aSpec |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
481 |
self shouldBeMutable. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
482 |
aSpec loads |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
483 |
ifNotNil: [ :otherLoads | self loads ifNil: [ loads := otherLoads ] ifNotNil: [ loads := (loads , otherLoads) asSet asArray ] ]. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
484 |
self loader: aSpec loader |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
485 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
486 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
487 |
metacelloRegistrationHash |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
488 |
"name className versionString operator loads preLoadDoIt postLoadDoIt" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
489 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
490 |
| hash | |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
491 |
hash := String stringHash: name initialHash: 0. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
492 |
hash := String stringHash: self className initialHash: hash. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
493 |
hash := String stringHash: self versionString initialHash: hash. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
494 |
hash := String stringHash: self operator asString initialHash: hash. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
495 |
hash := String stringHash: self preLoadDoIt asString initialHash: hash. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
496 |
hash := String stringHash: self postLoadDoIt asString initialHash: hash. |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
497 |
^ hash bitXor: loads hash |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
498 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
499 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
500 |
registration |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
501 |
^ MetacelloProjectRegistration |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
502 |
registrationForProjectSpec: self |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
503 |
ifAbsent: [ :ignored | ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
504 |
ifPresent: [ :existing :new | existing ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
505 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
506 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
507 |
registrationsCompareEqual: aMetacelloProjectSpec |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
508 |
"name className versionString operator loads preLoadDoIt postLoadDoIt" |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
509 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
510 |
^ self className = aMetacelloProjectSpec className |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
511 |
and: [ self versionString = aMetacelloProjectSpec versionString and: [ self operator == aMetacelloProjectSpec operator ] ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
512 |
! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
513 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
514 |
unregisterProject |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
515 |
^ MetacelloProjectRegistration |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
516 |
registrationForProjectSpec: self |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
517 |
ifAbsent: [ ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
518 |
ifPresent: [ :existing :new | existing unregisterProject ] |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
519 |
! ! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
520 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
521 |
!MetacelloProjectSpec methodsFor:'visiting'! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
522 |
|
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
523 |
projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
524 |
projectBlock value: self |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
525 |
! ! |
25ac697dc747
- Updated from branch master
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14
diff
changeset
|
526 |
|
1 | 527 |
!MetacelloProjectSpec class methodsFor:'documentation'! |
528 |
||
529 |
version_SVN |
|
530 |
^ '$Id:: $' |
|
531 |
! ! |