"{ Package: 'stx:goodies/monticello' }"
Object subclass:#MCRepositoryGroup
instanceVariableNames:'repositories'
classVariableNames:''
poolDictionaries:''
category:'Monticello-Versioning'
!
MCRepositoryGroup class instanceVariableNames:'default'
"
No other class instance variables are inherited by this class.
"
!
MCRepositoryGroup comment:'A singleton class, holds the list of repositories. Can look for a requested VersionInfo among its repositories.'
!
!MCRepositoryGroup class methodsFor:'as yet unclassified'!
default
^ default ifNil: [default _ self new]
!
new
^ self basicNew initialize
! !
!MCRepositoryGroup methodsFor:'as yet unclassified'!
addRepository: aRepository
((repositories includes: aRepository) or: [aRepository == MCCacheRepository default])
ifFalse: [repositories add: aRepository.
self class default addRepository: aRepository].
self changed: #repositories
!
includes: aRepository
^ self repositories includes: aRepository
!
includesVersionNamed: aString
self repositoriesDo: [:ea | (ea includesVersionNamed: aString) ifTrue: [^ true]].
^ false
!
initialize
repositories _ OrderedCollection new
!
removeRepository: aRepository
repositories remove: aRepository ifAbsent: [].
self changed: #repositories
!
repositories
^ ((Array with: MCCacheRepository default), repositories) select: [ :ea | ea isValid ]
!
repositoriesDo: aBlock
self repositories do: [:ea | [aBlock value: ea] on: Error do: []]
!
versionWithInfo: aVersionInfo
^self versionWithInfo: aVersionInfo ifNone: [ self error: 'Could not find version ', aVersionInfo name printString,'. Maybe you need to add a repository?' ]
!
versionWithInfo: aVersionInfo ifNone: aBlock
self repositoriesDo: [:ea | (ea versionWithInfo: aVersionInfo) ifNotNilDo: [:v | ^ v]].
^aBlock value
! !
!MCRepositoryGroup class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryGroup.st,v 1.1 2006-11-22 13:15:57 cg Exp $'
! !