MCVersionDependency.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 697 4a03b955f907
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
80
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCVersionDependency
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'package versionInfo'
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
697
4a03b955f907 category change
Claus Gittinger <cg@exept.de>
parents: 80
diff changeset
     7
	category:'SCM-Monticello-Versioning'
80
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCVersionDependency class methodsFor:'as yet unclassified'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
package: aPackage info: aVersionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self basicNew initializeWithPackage: aPackage info: aVersionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCVersionDependency methodsFor:'accessing'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
package
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ package
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
repositoryGroup
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ self package workingCopy repositoryGroup
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!MCVersionDependency methodsFor:'comparing'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
= other
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	^ other species = self species
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		and: [other versionInfo = versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
				and: [other package = package]]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
hash
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^ versionInfo hash
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!MCVersionDependency methodsFor:'initialize-release'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
initializeWithPackage: aPackage info: aVersionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	package _ aPackage.
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	versionInfo _ aVersionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!MCVersionDependency methodsFor:'resolving'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
resolve
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	^ self repositoryGroup
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
		versionWithInfo: versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		ifNone: [ MCRepositoryGroup default versionWithInfo: versionInfo ifNone: []]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!MCVersionDependency methodsFor:'testing'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
isCurrent
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	^ package hasWorkingCopy
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		and: [self isFulfilled
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
			and: [package workingCopy modified not]]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
isFulfilled
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^package hasWorkingCopy
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
		and: [self isFulfilledBy: package workingCopy ancestry]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
isFulfilledBy: anAncestry
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	^ anAncestry ancestors includes: versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
isFulfilledByAncestors
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ package hasWorkingCopy
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
		and: [self isFulfilledByAncestorsOf: package workingCopy ancestry]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
isFulfilledByAncestorsOf: anAncestry
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	^ anAncestry hasAncestor: versionInfo
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
isOlder
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	"Answer true if I represent an older version of a package that is loaded."
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	^ package hasWorkingCopy
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
		and: [self isFulfilled not
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
			and: [ self isFulfilledByAncestors
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
				and: [package workingCopy modified not]]]
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
! !
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!MCVersionDependency class methodsFor:'documentation'!
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
version
697
4a03b955f907 category change
Claus Gittinger <cg@exept.de>
parents: 80
diff changeset
    95
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionDependency.st,v 1.2 2012-09-11 21:30:13 cg Exp $'
80
349349d9b55a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
! !