MCLazyPropertyDictionary.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 634 5a72e7e81794
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
267
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Dictionary subclass:#MCLazyPropertyDictionary
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'tokens'
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
634
5a72e7e81794 category change
Claus Gittinger <cg@exept.de>
parents: 367
diff changeset
     7
	category:'SCM-Monticello-St/X support'
267
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCLazyPropertyDictionary class methodsFor:'instance creation'!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
withTokens: anArray
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
    ^self new setTokens: anArray
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    "Created: / 28-10-2010 / 15:20:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
! !
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!MCLazyPropertyDictionary methodsFor:'accessing'!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
at: key ifAbsent: block
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    tokens ifNotNil:[self associate].
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    ^super at: key ifAbsent:block
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    "Created: / 28-10-2010 / 15:24:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!MCLazyPropertyDictionary methodsFor:'initialization'!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
setTokens: anArray
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    tokens := anArray
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    "Created: / 28-10-2010 / 15:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!MCLazyPropertyDictionary methodsFor:'private'!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
associate
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
        tokens pairWiseDo: [:key :value | 
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
                                        | tmp |
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
                                        tmp := value.
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
                                        value isString ifFalse: [tmp := value collect: [:ea | MCLazyPropertyDictionary withTokens: ea]].
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
                                        value = 'nil' ifTrue: [tmp := ''].
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
                                        self at: key put: tmp].
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
        tokens := nil.
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    "Created: / 28-10-2010 / 15:23:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
! !
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!MCLazyPropertyDictionary class methodsFor:'documentation'!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
version
634
5a72e7e81794 category change
Claus Gittinger <cg@exept.de>
parents: 367
diff changeset
    57
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCLazyPropertyDictionary.st,v 1.3 2012-09-11 21:22:36 cg Exp $'
267
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
version_CVS
634
5a72e7e81794 category change
Claus Gittinger <cg@exept.de>
parents: 367
diff changeset
    61
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCLazyPropertyDictionary.st,v 1.3 2012-09-11 21:22:36 cg Exp $'
267
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
version_SVN
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    ^ '§Id: MCLazyPropertyDictionary.st 23 2010-10-29 14:41:24Z vranyj1 §'
6296aec0f1bb initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
! !