MCDictionaryRepository.st
author Claus Gittinger <cg@exept.de>
Mon, 03 Jun 2013 12:32:31 +0200
changeset 878 57dcb488ff87
parent 621 e64537ed2acc
child 902 3b122f8425d9
permissions -rw-r--r--
class: ProjectDefinition changed: #monticelloName

"{ Package: 'stx:goodies/monticello' }"

MCRepository subclass:#MCDictionaryRepository
	instanceVariableNames:'description dict'
	classVariableNames:''
	poolDictionaries:''
	category:'SCM-Monticello-Repositories'
!


!MCDictionaryRepository class methodsFor:'initialization'!

new
    ^self basicNew initialize
! !


!MCDictionaryRepository methodsFor:'as yet unclassified'!

= other
	^ self == other
!

allVersionInfos
	^ dict values collect: [:ea | ea info]
!

basicStoreVersion: aVersion
	dict at: aVersion info put: aVersion
!

closestAncestorVersionFor: anAncestry ifNone: errorBlock
	| info |
	info := anAncestry breadthFirstAncestors
			detect: [:ea | self includesVersionWithInfo: ea]
			ifNone: [^ errorBlock value].
	^ self versionWithInfo: info
!

description

	^ description ifNil: ['cache']
!

description: aString

	description := aString 
!

dictionary

	^ dict
!

dictionary: aDictionary

	dict := aDictionary
!

includesVersionNamed: aString
	^ dict anySatisfy: [:ea | ea info name = aString]
!

includesVersionWithInfo: aVersionInfo
	^ dict includesKey: aVersionInfo
!

initialize

	super initialize.
	dict := Dictionary new.

!

sortedVersionInfos
	| sorter |
	sorter := MCVersionSorter new.
	self allVersionInfos do: [:ea | sorter addVersionInfo: ea].
	^ sorter sortedVersionInfos

!

versionWithInfo: aVersionInfo ifAbsent: errorBlock
	^ dict at: aVersionInfo ifAbsent: errorBlock
! !

!MCDictionaryRepository class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDictionaryRepository.st,v 1.4 2012-09-11 21:21:28 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDictionaryRepository.st,v 1.4 2012-09-11 21:21:28 cg Exp $'
!

version_SVN
    ^ '§Id: MCDictionaryRepository.st 7 2010-09-12 07:18:55Z vranyj1 §'
! !