core/MetacelloProjectSpec.st
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--
- Updated from branch master
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     2
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     3
MetacelloSpec subclass:#MetacelloProjectSpec
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     4
	instanceVariableNames:'name className versionString operator loads preLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     5
		postLoadDoIt'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     6
	classVariableNames:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     7
	poolDictionaries:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     8
	category:'Metacello-Core-Specs'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     9
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    10
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    11
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    12
!MetacelloProjectSpec methodsFor:'accessing'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    13
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    44
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    45
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    46
loads: aCollection
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    47
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    48
	aCollection setLoadsInMetacelloProject: self
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    49
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    50
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    56
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    57
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    63
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    64
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    65
postLoadDoIt: anObject
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    66
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    67
	anObject setPostLoadDoItInMetacelloSpec: self
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    68
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    69
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    70
preLoadDoIt: anObject
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    71
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    72
	anObject setPreLoadDoItInMetacelloSpec: self
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    73
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    74
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    78
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    79
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    83
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    84
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    88
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    89
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    90
!MetacelloProjectSpec methodsFor:'adding'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    91
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    92
addToMetacelloPackages: aMetacelloPackagesSpec
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    93
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    94
	| spec |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    95
	spec := (aMetacelloPackagesSpec project projectReferenceSpec)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    96
			name: self name;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    97
			projectReference: self copy;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    98
			yourself.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    99
	aMetacelloPackagesSpec addMember: 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   100
		(aMetacelloPackagesSpec addMember 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   101
			name: spec name;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   102
			spec: spec;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   103
			yourself)
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   104
			
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   105
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   141
!MetacelloProjectSpec methodsFor:'loading'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   142
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   143
load
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   144
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   145
	self subclassResponsibility
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   146
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   147
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   148
!MetacelloProjectSpec methodsFor:'merging'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   149
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   150
mergeMap
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   151
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   152
	| map |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   153
	map := super mergeMap.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   154
	map at: #name put: name.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   155
	map at: #className put: className.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   156
	map at: #versionString put: versionString.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   157
	map at: #operator put: operator.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   158
	map at: #loads put: loads.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   159
	map at: #preLoadDoIt put: preLoadDoIt.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   160
	map at: #postLoadDoIt put: postLoadDoIt.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   161
	^map
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   162
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   163
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   164
!MetacelloProjectSpec methodsFor:'printing'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   165
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   292
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   293
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   294
configMethodOn: aStream indent: indent
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   295
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   296
	aStream 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   297
		tab: indent;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   298
		nextPutAll: 'spec '; cr;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   299
		tab: indent + 1;
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   300
		nextPutAll: 'name: ', self name printString, ';'.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   301
	self configMethodBodyOn: aStream indent: indent.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   302
	aStream nextPut: $.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   303
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   304
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   343
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   344
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   345
label
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   346
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   352
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   353
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   354
!MetacelloProjectSpec methodsFor:'private'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   376
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   377
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   378
!MetacelloProjectSpec methodsFor:'querying'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   379
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   388
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   389
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   390
getPostLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   391
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   392
	^postLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   393
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   394
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   395
getPreLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   396
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   397
	^preLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   398
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   399
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   400
loads
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   401
	^ loads
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   402
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   403
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   404
name
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   405
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   406
	^name
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   407
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   408
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   409
operator
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   410
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   411
	operator == nil ifTrue: [ ^#>= ].
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   412
	^ operator
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   413
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   414
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   415
postLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   416
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   417
	^postLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   418
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   419
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   420
preLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   421
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   422
	^preLoadDoIt
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   423
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   424
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   425
projectPackage
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   426
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   427
	^nil
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   428
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   434
versionKey
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   435
	"suitable for using as a unique key for the receiver's version in a dictionary"
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   436
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   437
	^ self version versionKey
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   438
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   445
versionString
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   446
	^ versionString
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   447
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   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
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   527
!MetacelloProjectSpec class methodsFor:'documentation'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   528
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   529
version_SVN
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   530
    ^ '$Id::                                                                                                                        $'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
   531
! !