MCDictionaryRepository.st
author Claus Gittinger <cg@exept.de>
Tue, 11 Sep 2012 23:21:28 +0200
changeset 621 e64537ed2acc
parent 365 34ae10455cd6
child 902 3b122f8425d9
permissions -rw-r--r--
category change
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCRepository subclass:#MCDictionaryRepository
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'description dict'
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
621
e64537ed2acc category change
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
     7
	category:'SCM-Monticello-Repositories'
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    11
!MCDictionaryRepository class methodsFor:'initialization'!
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    12
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    13
new
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    14
    ^self basicNew initialize
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    15
! !
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    16
621
e64537ed2acc category change
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
    17
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!MCDictionaryRepository methodsFor:'as yet unclassified'!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
= other
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	^ self == other
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
allVersionInfos
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	^ dict values collect: [:ea | ea info]
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
basicStoreVersion: aVersion
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	dict at: aVersion info put: aVersion
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
closestAncestorVersionFor: anAncestry ifNone: errorBlock
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	| info |
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    34
	info := anAncestry breadthFirstAncestors
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
			detect: [:ea | self includesVersionWithInfo: ea]
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
			ifNone: [^ errorBlock value].
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	^ self versionWithInfo: info
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
description
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	^ description ifNil: ['cache']
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
description: aString
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    47
	description := aString 
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
dictionary
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	^ dict
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
dictionary: aDictionary
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    57
	dict := aDictionary
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
includesVersionNamed: aString
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	^ dict anySatisfy: [:ea | ea info name = aString]
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
includesVersionWithInfo: aVersionInfo
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	^ dict includesKey: aVersionInfo
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
initialize
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    70
	super initialize.
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    71
	dict := Dictionary new.
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
sortedVersionInfos
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	| sorter |
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    77
	sorter := MCVersionSorter new.
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	self allVersionInfos do: [:ea | sorter addVersionInfo: ea].
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
	^ sorter sortedVersionInfos
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    80
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
versionWithInfo: aVersionInfo ifAbsent: errorBlock
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	^ dict at: aVersionInfo ifAbsent: errorBlock
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!MCDictionaryRepository class methodsFor:'documentation'!
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
version
621
e64537ed2acc category change
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
    90
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDictionaryRepository.st,v 1.4 2012-09-11 21:21:28 cg Exp $'
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    91
!
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    92
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    93
version_CVS
621
e64537ed2acc category change
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
    94
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDictionaryRepository.st,v 1.4 2012-09-11 21:21:28 cg Exp $'
242
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    95
!
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    96
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    97
version_SVN
2dee607da8e4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 108
diff changeset
    98
    ^ '§Id: MCDictionaryRepository.st 7 2010-09-12 07:18:55Z vranyj1 §'
108
266be3c96486 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
! !