stx/MetacelloStXPackageSpec.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 19 Sep 2012 01:38:26 +0000
changeset 20 8caf2f257260
parent 9 d126d2954bf9
child 21 8dd3045fbf6e
permissions -rw-r--r--
- fixes for package support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/metacello/stx' }"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
MetacelloAbstractPackageSpec subclass:#MetacelloStXPackageSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'file repositories goferPackage preLoadDoIt postLoadDoIt'
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Metacello-St/X-Specs'
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
Collection subclass:#Prerequisites
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	instanceVariableNames:'packageSpec suppressions additions'
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	classVariableNames:''
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
	poolDictionaries:''
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	privateIn:MetacelloStXPackageSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!MetacelloStXPackageSpec methodsFor:'accessing'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
file: aString
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	file := aString
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
getFile
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	"raw access to iv"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	^file
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
getName
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "raw access to iv"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    ^ name
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
getRepositories
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "raw access to iv"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    ^ repositories
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
goferLoaderReference
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
	^file == nil 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
		ifTrue: [ GoferPackageReference name: self name ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
		ifFalse: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
			"does Monticello-style #versionInfoFromVersionNamed: matching"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
			MetacelloGoferPackage name: self name packageFilename: self file ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
goferPackage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	goferPackage == nil 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
		ifTrue: [ goferPackage := MetacelloGoferPackage name: self name packageFilename: self file ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
	^goferPackage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
info
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
	"test compatibility method"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
	^self
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
preLoadDoIt: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
	anObject setPreLoadDoItInMetacelloSpec: self
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
repository: aStringOrMetacelloRepositorySpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
	self repositories repository: aStringOrMetacelloRepositorySpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
repository: aString username: username password: password
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
	self repositories repository: aString username: username password: password
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
setPostLoadDoIt: aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
	postLoadDoIt := aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
setPreLoadDoIt: aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
	preLoadDoIt := aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
!MetacelloStXPackageSpec methodsFor:'construction'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
file: aString constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    aVersionConstructor fileForPackage: aString
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
includes: anObject constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    aVersionConstructor includesForPackage: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
postLoadDoIt: aSymbol constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    aVersionConstructor postLoadDoItForPackage: aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
preLoadDoIt: aSymbol constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    aVersionConstructor preLoadDoItForPackage: aSymbol
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
repositories: aBlock constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    aVersionConstructor repositoriesForPackage: aBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
repository: anObject constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    aVersionConstructor repositoryForPackage: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
repository: aString username: username password: password constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    aVersionConstructor repositoryForPackage: aString username: username password: password
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
requires: anObject constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    aVersionConstructor requiresForPackage: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
supplyingAnswers: anObject constructor: aVersionConstructor
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
    aVersionConstructor supplyingAnswersForPackage: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
!MetacelloStXPackageSpec methodsFor:'copying'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
postCopy
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
	super postCopy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
	goferPackage := nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
	repositories := repositories copy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
!MetacelloStXPackageSpec methodsFor:'development support'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
copySpecTo: aRepositorySpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
	"Copy current mcz file to the repository named in aRepositorySpec"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
	self loader copySpec: self from: self repositorySpecs to: aRepositorySpec createRepository
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
forceUpdatePackageSpec: updatedSpecs using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
	self updatePackageSpec: updatedSpecs force: true using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
goferBranchPackage: branchName message: commitMessage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
	"uses gofer to do commit ... non-interactive"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
	| latestFile pkgSpec   |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
	(file notNil and: [ (self name, '.', branchName) = self file ])
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
			latestFile := self loader latestPackage: self file fromRepository: self repositorySpecs.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
			pkgSpec := self copy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
			latestFile ~~ nil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
				ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
					pkgSpec file: latestFile.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
					pkgSpec goferCommitPackage: commitMessage.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
					^ self ] ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
	self loader goferCommitBranchPackage: branchName using: self repositorySpecs commitMessage: commitMessage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
goferCommitPackage: commitMessage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
	"uses gofer to do commit ... non-interactive"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
	| latestFile pkgSpec |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
	^(file notNil and: [ self name = self file ])
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
		ifTrue: [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
			latestFile := self loader latestPackage: self name fromRepository: self repositorySpecs.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
			pkgSpec := self copy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
			pkgSpec file: latestFile.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
			pkgSpec goferCommitPackage: commitMessage ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
		ifFalse: [ self loader goferCommitPackageUsing: self repositorySpecs commitMessage: commitMessage ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
packagesNeedSavingVisited: visitedProjects using: repos into: aCollection
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
	^self loader packagesNeedSavingUsing: repos into: aCollection
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
savePackage
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
	"Interactive save ... prompted for commit message and package name unless MCVersionNameAndMessageRequest handled"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
	| latestFile pkgSpec |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
	^(file notNil and: [ self name = self file ])
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
		ifTrue: [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
			latestFile := self loader latestPackage: self name fromRepository: self repositorySpecs.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
			pkgSpec := self copy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
			pkgSpec file: latestFile.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
			pkgSpec savePackage ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
		ifFalse: [ self loader savePackageUsing: self repositorySpecs ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
updateForSpawnMethod: sourceSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
	"This means that this spec was used in a baseline and will be used in a version .... drop all information that isn't useful"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
	| nm fl |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
	nm := name.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
	fl := file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
	sourceSpec ~~ nil ifTrue: [ fl := sourceSpec file ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
	super updateForSpawnMethod: sourceSpec.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
	file := repositories := goferPackage := preLoadDoIt := postLoadDoIt := nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
	name := nm.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
	file := fl.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
updatePackageRepositories: repositorySpecs
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
	| resolvedPackageRef |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
	Transcript cr; show: '  Looking up version -> ', self file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
	resolvedPackageRef := self loader resolveSpec: self from: repositorySpecs.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
	Transcript cr; show: 'Update repositoryGroup -> ', resolvedPackageRef name, ' ' , resolvedPackageRef repository description.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
	resolvedPackageRef version workingCopy repositoryGroup addRepository: resolvedPackageRef repository
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
updatePackageRepositoriesFor: aVersionSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
	"Don't update the repository unless the package is loaded in the image"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
	self workingCopy == nil ifTrue: [ ^self ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
	self updatePackageRepositories: self repositorySpecs, aVersionSpec repositorySpecs.	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
updatePackageSpec: updatedSpecs force: force using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
	"Add pkg copy to updatedSpecs if the file in current image is different from the receiver's file"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
	| viName |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
	(force not and: [ self getFile == nil ])
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
		ifTrue: [ ^ self ].	"no file explicitly specified in this spec"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
	(viName := self workingCopyNameFor: anMCLoader) == nil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
		ifTrue: [ ^ self ].	"no working copy"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
	viName ~= self file
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
			| spec |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
			spec := self copy.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
			spec file: viName.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
			updatedSpecs at: spec name put: spec ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
		ifFalse: [ updatedSpecs at: self name put: #uptodate ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
updatePackageSpec: updatedSpecs using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
	"Add pkg copy to updatedSpecs if the file in current image is different from the receiver's file"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
	self updatePackageSpec: updatedSpecs force: false using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
!MetacelloStXPackageSpec methodsFor:'loading'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
ensureLoadUsing: mcLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
	self explicitLoadUsing: mcLoader ensureSpecLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
ensureLoadedForDevelopmentUsing: mcLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
	"noop"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
	
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
	^true
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
explicitLoadUsing: mcLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
	| wc fetchingSpecLoader |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
	((wc := self workingCopy) ~~ nil and: [ wc needsSaving ]) 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
			(MetacelloSkipDirtyPackageLoad signal: self)
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
				ifTrue:  [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
					Transcript cr; show: 'Skipping load of modified package: ', self file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
					^self]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
				ifFalse: [Transcript cr; show: 'Load over modified package: ', self file] ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
	"fetch and explicitly load it"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
	fetchingSpecLoader := mcLoader fetchingSpecLoader.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
	fetchingSpecLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
		explicitLoadPackageSpecs: (Array with: self) 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
		repositories: (fetchingSpecLoader repositoriesFrom: self repositorySpecs).
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
fetch
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
	self fetchUsing: self loader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
fetchPackage: aLoaderPolicy
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
	self fetchUsing: 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
		(self loader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
			loaderPolicy: aLoaderPolicy;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
			yourself)
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
fetchUsing: mcLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
	| fetchingSpecLoader |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
	fetchingSpecLoader := mcLoader fetchingSpecLoader.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
	fetchingSpecLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
		linearLoadPackageSpecs: (Array with: self) 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
		repositories: (fetchingSpecLoader repositoriesFrom: self repositorySpecs).
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
load
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
	self explicitLoadUsing: self loader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
loadUsing: mcLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
	self loader doingLoads: [ self explicitLoadUsing: mcLoader ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
loadUsing: aLoader gofer: gofer
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
	^aLoader linearLoadPackageSpec: self gofer: gofer
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
packageSpecsInLoadOrder
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
	^{ self. }
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
postLoadDoIt: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
	anObject setPostLoadDoItInMetacelloSpec: self
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
repositoryDescriptions
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    ^ self repositorySpecs collect: [ :repoSpec | repoSpec description ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
repositorySpecs
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
	^self repositories map values 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
!MetacelloStXPackageSpec methodsFor:'merging'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
mergeMap
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
	| map |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
	map := super mergeMap.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
	map at: #file put: file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
	map at: #repositories put: self repositories.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
	map at: #preLoadDoIt put: preLoadDoIt.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
	map at: #postLoadDoIt put: postLoadDoIt.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
	^map
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
mergeSpec: anotherSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
	| newSpec map anotherPackages anotherRepositories |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
	newSpec := super mergeSpec: anotherSpec.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
	map := anotherSpec mergeMap.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
	(anotherRepositories := map at: #repositories) notEmpty
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
			newSpec 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
				repositories: (self repositories isEmpty
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
					ifTrue: [ anotherRepositories ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
					ifFalse: [ self repositories mergeSpec: anotherRepositories ]) ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
	^newSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
nonOverridable
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
	^super nonOverridable, #( repositories)
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
!MetacelloStXPackageSpec methodsFor:'printing'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
configMethodBodyOn: aStream hasName: hasName indent: indent
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
	| hasFile hasRepositories hasPreLoadDoIt hasPostLoadDoIt hasRequiresOrIncludesOrAnswers |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
	hasFile := file ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
	hasRepositories := self repositorySpecs size > 0.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
	hasPreLoadDoIt := self getPreLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
	hasPostLoadDoIt := self getPostLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
	hasRequiresOrIncludesOrAnswers := (self requires isEmpty and: [ self includes isEmpty and: [self answers isEmpty ]]) not.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
	hasRequiresOrIncludesOrAnswers
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
			self 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
				configMethodBodyOn: aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
				hasName: hasName 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
				cascading: hasFile | hasRepositories | hasPreLoadDoIt | hasPostLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
				indent: indent ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
	self 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
		configMethodOn: aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
		for: file 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
		selector: 'file: ' 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
		cascading: hasName | hasRepositories | hasPreLoadDoIt | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
		cascade: hasRepositories | hasPreLoadDoIt | hasPostLoadDoIt 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
		indent: indent.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
	hasRepositories
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
			(self repositorySpecs size > 1)
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
				ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
					hasName | hasFile | hasPreLoadDoIt | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
						ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
							aStream cr;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
							tab: indent. ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
					aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
						nextPutAll: 'repositories: ['; 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
						cr;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
						tab: indent + 1;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
						nextPutAll: 'spec'; 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
						cr.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
					self repositories configMethodCascadeOn: aStream indent: indent + 1.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
					aStream nextPutAll: ' ]' ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
				ifFalse: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
					hasName | hasFile | hasPreLoadDoIt | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
						ifTrue: [ aStream cr; tab: indent ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
					self repositories configMethodCascadeOn: aStream indent: indent ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
			hasPreLoadDoIt | hasPostLoadDoIt ifTrue: [ aStream nextPut: $; ] ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
	self 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
		configMethodOn: aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
		for: self getPreLoadDoIt 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
		selector: 'preLoadDoIt: '
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
		cascading: hasName | hasFile | hasRepositories | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
		cascade: hasPostLoadDoIt 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
		indent: indent.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
	self 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
		configMethodOn: aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
		for: self getPostLoadDoIt 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
		selector: 'postLoadDoIt: ' 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
		cascading: hasName | hasFile | hasRepositories | hasPreLoadDoIt | hasRequiresOrIncludesOrAnswers 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
		cascade: false 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
		indent: indent.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
	aStream nextPut: $.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
configMethodCascadeOn: aStream member: aMember last: lastCascade indent: indent
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   429
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
	aMember methodUpdateSelector  == #remove:
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
		ifTrue: [ aStream  nextPutAll: 'removePackage: ', self name printString ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   432
		ifFalse: [ self configShortCutMethodBodyOn: aStream member: aMember indent: indent ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
	lastCascade
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
		ifTrue: [ aStream nextPut: $. ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   435
		ifFalse: [ aStream nextPut: $;; cr ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
configMethodOn: aStream indent: indent
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
	| hasRepositories hasPreLoadDoIt hasPostLoadDoIt hasRequiresOrIncludesOrAnswers hasFile |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
	hasFile := file ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   442
	hasRepositories := self repositorySpecs size > 0.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
	hasPreLoadDoIt := self getPreLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
	hasPostLoadDoIt := self getPostLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
	hasRequiresOrIncludesOrAnswers := (self requires isEmpty and: [ self includes isEmpty and: [self answers isEmpty ]]) not.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
	aStream tab: indent; nextPutAll: 'spec '.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
	hasFile | hasRepositories | hasPreLoadDoIt | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
		ifTrue: [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
			aStream cr; tab: indent + 1; nextPutAll: 'name: ', self name printString; nextPut: $;.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
			self configMethodBodyOn: aStream hasName: true indent: indent + 1 ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
		ifFalse: [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
			aStream nextPutAll: 'name: ', self name printString ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
configShortCutMethodBodyOn: aStream member: aMember indent: indent
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
	| hasFile hasRepositories hasPreLoadDoIt hasPostLoadDoIt hasRequiresOrIncludesOrAnswers |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
	hasFile := file ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
	hasRepositories := self repositorySpecs size > 0.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
	hasPreLoadDoIt := self getPreLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
	hasPostLoadDoIt := self getPostLoadDoIt ~~ nil.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
	hasRequiresOrIncludesOrAnswers := (self requires isEmpty and: [ self includes isEmpty and: [self answers isEmpty ]]) not.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
	hasRepositories | hasPreLoadDoIt | hasPostLoadDoIt | hasRequiresOrIncludesOrAnswers
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
		ifTrue: [
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
			aStream 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
				nextPutAll: 'package: ', self name printString, ' ';
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
				nextPutAll: aMember methodUpdateSelector asString, ' ['; cr.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
			aStream tab: indent + 1; nextPutAll: 'spec '.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
			self configMethodBodyOn: aStream hasName: false indent: indent + 2.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
			aStream nextPutAll: ' ]'.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
			^self ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   472
	aStream nextPutAll: 'package: ', self name printString.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
	hasFile
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
		ifTrue: [ aStream nextPutAll: ' with: ', file printString ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
!MetacelloStXPackageSpec methodsFor:'private'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
extractNameFromFile
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   480
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
	file == nil ifTrue: [ ^nil ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   482
	^(self loader nameComponentsFrom: self file) first
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   483
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
includesForPackageOrdering
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
	^self includes
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   490
resolveToPackagesIn: aVersionSpec visited: visited
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   491
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
	^{ self }
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
setRequires: aCollection
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
    self breakPoint: #jv.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
    requires := aCollection
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
    "Created: / 05-09-2012 / 19:47:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
!MetacelloStXPackageSpec methodsFor:'querying'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
file
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
	file == nil ifTrue: [ ^self name ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
	^file
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
getPostLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
	^postLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
getPreLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
	^preLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
isPackageLoaded
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
	^self isPackageLoaded: self loader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
isPackageLoaded: aLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
	^(self workingCopyNameFor: aLoader) ~~ nil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
name
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
	name == nil ifTrue: [ name := self extractNameFromFile ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
	^name
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
postLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
	^postLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
preLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   544
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
	^preLoadDoIt
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   546
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   547
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   548
repositories
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   549
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   550
	repositories == nil ifTrue: [ repositories := self project repositoriesSpec ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   551
	^ repositories
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   552
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   553
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   554
repositories: anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   555
	repositories := anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   556
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   557
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   558
repository
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   559
    self deprecated: 'Use repositories or repositorySpecs'.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   560
    self repositorySpecs isEmpty
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   561
        ifTrue: [ ^ nil ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   562
    ^ self repositorySpecs first
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   563
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   564
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   565
requires
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   566
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   567
    requires == nil ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   568
        requires := Prerequisites for: self. 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   569
    ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   570
    ^requires
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   571
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   572
    "Created: / 05-09-2012 / 19:47:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   574
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
!MetacelloStXPackageSpec methodsFor:'testing'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   577
compareCurrentVersion: anOperator targetVersionStatus: statusIgnored using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
	self 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   580
		currentPackageLoaded: [:bool | ^bool ] 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   581
		comparing: anOperator 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
		notLoaded: [:ignored | ^false ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   583
		using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   584
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   585
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   586
compareRelativeCurrentVersion: anOperator targetVersionStatus: statusIgnored using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   587
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   588
	^self compareCurrentVersion: anOperator targetVersionStatus: statusIgnored using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   589
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   590
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   591
compareWorkingCopyNamed: wcName using: comarisonOperator
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   592
	| fileRef wcRef |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   593
	fileRef := GoferResolvedReference name: self file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   594
	wcRef := GoferResolvedReference name: wcName.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   595
	^ wcRef compare: fileRef using: comarisonOperator
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   596
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   597
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   598
currentPackageLoaded: loadedBlock comparing: comarisonOperator notLoaded: notLoadedBlock using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   599
	"Use currentVersionInfoFor: because it involves the loader and returns versionInfo for a planned load 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   600
	 (atomic loaders) or currently loaded package"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   601
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   602
	| wcName vis |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   603
	vis := anMCLoader ancestorsFor: self.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   604
	vis notNil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   605
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
			| fileRef wcRef |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   607
			self getFile == nil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   608
				ifTrue: [ ^ loadedBlock value: false ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   609
			vis
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   610
				do: [ :vi | 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   611
					wcName := vi name.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   612
					fileRef := GoferResolvedReference name: self file.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   613
					wcRef := GoferResolvedReference name: wcName.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   614
					(wcRef compare: fileRef using: comarisonOperator)
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   615
						ifTrue: [ ^ loadedBlock value: true ] ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   616
			^ loadedBlock value: false ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   617
	^ notLoadedBlock value: true
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   618
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   619
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   620
currentPackageLoaded: loadedBlock notLoaded: notLoadedBlock using: anMCLoader
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   621
	"Use currentVersionInfoFor: because it involves the loader and returns versionInfo for a planned load 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   622
	 (atomic loaders) or currently loaded package"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   623
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   624
	| wcName vis |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
	vis := anMCLoader ancestorsFor: self.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   626
	vis notNil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   627
		ifTrue: [ 
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   628
			self getFile == nil
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   629
				ifTrue: [ ^ loadedBlock value: #() value: self file ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   630
			^ loadedBlock value: vis value: self file ].
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   631
	^ notLoadedBlock value
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   632
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   633
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   634
hasRepository
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   635
    ^ self repositorySpecs notEmpty
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   636
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   637
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   638
!MetacelloStXPackageSpec methodsFor:'visiting'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   639
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   640
projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   641
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
	packageBlock value: self
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   644
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
visitingWithPackages: packages
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   646
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   647
	packages at: self name put: self
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   648
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   649
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   650
!MetacelloStXPackageSpec::Prerequisites class methodsFor:'instance creation'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   651
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   652
for: spec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   653
    ^self new initializeFor: spec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
    "Created: / 05-09-2012 / 19:49:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   657
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
!MetacelloStXPackageSpec::Prerequisites methodsFor:'adding & removing'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
add:anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   661
    "add the argument, anObject to the receiver.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
     If the receiver is ordered, the position of the new element is undefined
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
     (i.e. don't depend on where it will be put).
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   664
     An error is raised here - it is to be implemented by a concrete subclass."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   665
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   666
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   667
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   668
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   669
addFirst:anObject
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   670
    "add the argument, anObject to the receiver.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   671
     If the receiver is ordered, the new element will be added at the beginning.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   672
     An error is raised here - it is to be implemented by a concrete subclass."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   673
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   674
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   675
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   676
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   677
remove:anObject ifAbsent:exceptionBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   678
    "search for the first element, which is equal to anObject;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   679
     if found, remove and return it.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   680
     If not found, return the the value of the exceptionBlock.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   681
     Uses equality compare (=) to search for the occurrence.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   682
     An error is raised here - it is to be implemented by a concrete subclass."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   683
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   684
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   685
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   686
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   687
removeIdentical:anObject ifAbsent:exceptionBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   688
    "search for the first element, which is identical to anObject;
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   689
     if found, remove and return it.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   690
     If not found, return the the value of the exceptionBlock.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   691
     Uses identity compare (==) to search for the occurrence.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   692
     An error is raised here - it is to be implemented by a concrete subclass."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   693
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   694
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   695
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   696
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   697
removeLast
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   698
    "remove the last element from the receiver.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   699
     Return the removed element.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   700
     An error is raised here - it is to be implemented by a concrete subclass."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   701
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   702
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   703
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   704
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   705
!MetacelloStXPackageSpec::Prerequisites methodsFor:'enumerating'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   706
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   707
do:aBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   708
    "evaluate the argument, aBlock for each element"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   709
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   710
    | def |
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   711
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   712
    def := ProjectDefinition definitionClassForPackage: packageSpec name.
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   713
    def preRequisites do:[:each|
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   714
        aBlock value: each
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   715
    ]
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   716
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   717
    "Modified: / 05-09-2012 / 19:53:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   718
!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   719
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   720
reverseDo:aBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   721
    "evaluate the argument, aBlock for each element in reverse order."
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   722
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   723
    ^ self do: aBlock
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   724
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   725
    "Modified: / 05-09-2012 / 19:51:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   726
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   727
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   728
!MetacelloStXPackageSpec::Prerequisites methodsFor:'growing'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   729
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   730
grow:howBig
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   731
    "change the receivers size"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   732
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   733
    ^ self shouldImplement
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   734
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   735
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   736
!MetacelloStXPackageSpec::Prerequisites methodsFor:'initialization'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   737
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   738
initializeFor: aMetacelloStXPackageSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   739
    packageSpec := aMetacelloStXPackageSpec
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   740
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   741
    "Created: / 05-09-2012 / 19:48:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   742
! !
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   743
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   744
!MetacelloStXPackageSpec class methodsFor:'documentation'!
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   745
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   746
version_SVN
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   747
    ^ '$Id::                                                                                                                        $'
d126d2954bf9 More St/X specific stuff
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   748
! !