MCPackage.st
author Claus Gittinger <cg@exept.de>
Mon, 25 Mar 2013 13:28:49 +0100
changeset 762 8372bc2eb483
parent 660 9fee0266bf4d
child 763 49a00b66be21
permissions -rw-r--r--
class: MCPackage added: #ensureValidVersionName: changed: #name:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCPackage
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'name'
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
660
9fee0266bf4d category change
Claus Gittinger <cg@exept.de>
parents: 542
diff changeset
     7
	category:'SCM-Monticello-Base'
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCPackage class methodsFor:'as yet unclassified'!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
named: aString
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self new name: aString
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    17
!MCPackage methodsFor:'accessing'!
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
762
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
    19
ensureValidVersionName: aStringOrSymbol
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
    20
    ^ aStringOrSymbol asString copyReplaceAny:':/' with:$_
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
    21
!
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
    22
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
name
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ name
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
name: aString
762
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
    28
        name := self ensureValidVersionName:aString
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    29
! !
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    30
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    31
!MCPackage methodsFor:'comparing'!
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    32
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    33
= other
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    34
	^ other species = self species and: [other name sameAs: name]
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    37
hash
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    38
	^ name asLowercase hash
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    39
! !
441
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
    40
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    41
!MCPackage methodsFor:'operations'!
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
snapshot
245
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    44
	| packageInfo definitions categories |
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    45
	packageInfo := self packageInfo.
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    46
	definitions := OrderedCollection new.
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    47
	categories := packageInfo systemCategories.
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    48
	categories isEmpty ifFalse: [ definitions add: (MCOrganizationDefinition categories: categories) ].
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    49
	packageInfo methods do: [:ea | definitions add: ea asMethodDefinition] displayingProgress: 'Snapshotting methods...'.
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    50
	(packageInfo respondsTo: #overriddenMethods) ifTrue:
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    51
		[packageInfo overriddenMethods
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    52
			do: [:ea | definitions add:
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    53
					(packageInfo changeRecordForOverriddenMethod: ea) asMethodDefinition]
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    54
			displayingProgress: 'Searching for overrides...'].
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    55
	packageInfo classes do: [:ea | definitions addAll: ea classDefinitions] displayingProgress: 'Snapshotting classes...'.
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    56
	(packageInfo respondsTo: #hasPreamble) ifTrue: [
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    57
		packageInfo hasPreamble ifTrue: [definitions add: (MCPreambleDefinition from: packageInfo)].
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    58
		packageInfo hasPostscript ifTrue: [definitions add: (MCPostscriptDefinition from: packageInfo)].
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    59
		packageInfo hasPreambleOfRemoval ifTrue: [definitions add: (MCRemovalPreambleDefinition from: packageInfo)].
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    60
		packageInfo hasPostscriptOfRemoval ifTrue: [definitions add: (MCRemovalPostscriptDefinition from: packageInfo)]]. 
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
    61
	^ MCSnapshot fromDefinitions: definitions
157
eed1900fd7a1 changed: #snapshot
Claus Gittinger <cg@exept.de>
parents: 154
diff changeset
    62
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    65
unload
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    66
	^ self workingCopy unload
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    67
! !
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    68
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    69
!MCPackage methodsFor:'printing & storing'!
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    70
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    71
printOn: aStream
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    72
	super printOn: aStream.
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    73
	aStream
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    74
		nextPut: $(;
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    75
		nextPutAll: name;
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    76
		nextPut: $)
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    77
!
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    78
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
storeOn: aStream
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	aStream
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
		nextPutAll: 'MCPackage';
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
		space; nextPutAll: 'named: '; store: name.
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    83
! !
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    84
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    85
!MCPackage methodsFor:'queries'!
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    86
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    87
hasWorkingCopy
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    88
	^ MCWorkingCopy registry includesKey: self
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
542
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    91
packageInfo
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    92
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    93
    (Smalltalk allProjectIDs includes: name) ifTrue:[
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    94
        ^ MCStXPackageInfo named: name
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    95
    ] ifFalse:[
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    96
        ^ PackageInfo named: name
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    97
    ]
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    98
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
    99
    "Modified: / 23-08-2011 / 13:31:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0a74443b8b71 changed: #packageInfo
Claus Gittinger <cg@exept.de>
parents: 441
diff changeset
   100
    "Modified: / 02-12-2011 / 15:53:22 / cg"
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
workingCopy
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
	^ MCWorkingCopy forPackage: self.
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
! !
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!MCPackage class methodsFor:'documentation'!
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
version
762
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
   110
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCPackage.st,v 1.11 2013-03-25 12:28:49 cg Exp $'
144
b7077cd6a0c3 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 103
diff changeset
   111
!
b7077cd6a0c3 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 103
diff changeset
   112
b7077cd6a0c3 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 103
diff changeset
   113
version_CVS
762
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
   114
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCPackage.st,v 1.11 2013-03-25 12:28:49 cg Exp $'
245
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
   115
!
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
   116
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
   117
version_SVN
ba7317557a9c added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 159
diff changeset
   118
    ^ '§Id: MCPackage.st 5 2010-08-29 07:30:29Z vranyj1 §'
103
016996199a05 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
! !
762
8372bc2eb483 class: MCPackage
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
   120