QualifiedName.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 15793 09837dc5030d
child 18105 3a3a3e0ac47f
child 25066 d1ae26e1463c
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
     1
"{ Package: 'stx:libbasic' }"
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
     2
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#QualifiedName
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'pathString'
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Kernel-Support'
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    10
!QualifiedName class methodsFor:'documentation'!
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    11
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    12
documentation
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    13
"
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    14
    some mimicri, to allow filein of visualWorks code which uses qualified names
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    15
"
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    16
! !
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!QualifiedName class methodsFor:'instance creation'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
for:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    ^ self new name:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
makeUnambiguous
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    ^ self
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
pathString:aPathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    ^ self new pathString:aPathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!QualifiedName methodsFor:'accessing'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
asString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    ^ pathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
comment:aString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    "empty for now"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
name:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    pathString := aStringOrSymbol asSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
pathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    "return the value of the instance variable 'pathString' (automatically generated)"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    54
    ^ pathString
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    55
!
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
pathString:something
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    "set the value of the instance variable 'pathString' (automatically generated)"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    60
    pathString := something.
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
    61
! !
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!QualifiedName methodsFor:'conditional execution'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
value
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "return my binding value, if unbound, return nil"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ^ self valueOrDo:[]
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
valueOrDo:aBlock
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "return my binding value, if unbound, return the result from evaluating aBlock"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    |ns path|
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    path := pathString asCollectionOfSubstringsSeparatedBy:$..
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    ((path size > 0) and:[path first = 'Core']) ifTrue:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        path := path copyFrom:2
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    ns := Smalltalk.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    path do:[:component |
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
        ns := ns at:component asSymbol ifAbsent:[ ^ aBlock value ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ^ ns
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!QualifiedName methodsFor:'defining'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
defineClass: name superclass: superclass
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
                indexedType: indexed
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
                private: private
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
                instanceVariableNames: instVars
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
                classInstanceVariableNames: classInstVars
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
                imports: imports
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
                category: category
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
                attributes: annotations
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    |sc|
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    sc := superclass value.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    sc isNil ifTrue:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
defineNameSpace: name private: private imports: imports category: category attributes: annotations
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    "klduge for now"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    pathString = 'Smalltalk' ifTrue:[
5366
82060eed5886 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5311
diff changeset
   112
        NameSpace name:name asSymbol.
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    ] ifFalse:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!QualifiedName methodsFor:'dummy for now'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
makeUnambiguous
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    ^ self
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!QualifiedName class methodsFor:'documentation'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
version
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   130
    ^ '$Header: /cvs/stx/stx/libbasic/QualifiedName.st,v 1.3 2013-10-27 10:14:09 cg Exp $'
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   131
!
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   132
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   133
version_CVS
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   134
    ^ '$Header: /cvs/stx/stx/libbasic/QualifiedName.st,v 1.3 2013-10-27 10:14:09 cg Exp $'
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
! !
15793
09837dc5030d class: QualifiedName
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
   136