QualifiedName.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 19 Jan 2012 11:46:00 +0000
branchjv
changeset 17911 a99f15c5efa5
parent 17910 8d796ca8bd1d
child 18105 3a3a3e0ac47f
permissions -rw-r--r--
Updated with /trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
Object subclass:#QualifiedName
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
	instanceVariableNames:'pathString'
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Kernel-Support'
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!QualifiedName class methodsFor:'instance creation'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
for:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
    ^ self new name:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
makeUnambiguous
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    ^ self
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
pathString:aPathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    ^ self new pathString:aPathString
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
!QualifiedName methodsFor:'accessing'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
asString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
    ^ pathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
comment:aString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    "empty for now"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
name:aStringOrSymbol
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
    pathString := aStringOrSymbol asSymbol
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
pathString
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    "return the value of the instance variable 'pathString' (automatically generated)"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    ^ pathString!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
pathString:something
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "set the value of the instance variable 'pathString' (automatically generated)"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    pathString := something.! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!QualifiedName methodsFor:'conditional execution'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
value
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    "return my binding value, if unbound, return nil"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    ^ self valueOrDo:[]
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
valueOrDo:aBlock
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    "return my binding value, if unbound, return the result from evaluating aBlock"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    |ns path|
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    path := pathString asCollectionOfSubstringsSeparatedBy:$..
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    ((path size > 0) and:[path first = 'Core']) ifTrue:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
        path := path copyFrom:2
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    ns := Smalltalk.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    path do:[:component |
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
        ns := ns at:component asSymbol ifAbsent:[ ^ aBlock value ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    ^ ns
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
!QualifiedName methodsFor:'defining'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
defineClass: name superclass: superclass
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
                indexedType: indexed
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
                private: private
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
                instanceVariableNames: instVars
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
                classInstanceVariableNames: classInstVars
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
                imports: imports
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
                category: category
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
                attributes: annotations
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    |sc|
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    sc := superclass value.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    sc isNil ifTrue:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    ].
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
defineNameSpace: name private: private imports: imports category: category attributes: annotations
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    "klduge for now"
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    pathString = 'Smalltalk' ifTrue:[
5366
82060eed5886 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5311
diff changeset
   101
        NameSpace name:name asSymbol.
5311
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    ] ifFalse:[
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    self halt.
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    ].
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
!QualifiedName methodsFor:'dummy for now'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
makeUnambiguous
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    ^ self
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
! !
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
!QualifiedName class methodsFor:'documentation'!
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
0370108c62ca initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
version
17892
d86c8bd5ece3 Merged with CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17883
diff changeset
   119
    ^ '$Header: /cvs/stx/stx/libbasic/QualifiedName.st,v 1.2 2000/04/12 21:38:35 cg Exp $'
17846
24edc476ac18 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17845
diff changeset
   120
! !
17892
d86c8bd5ece3 Merged with CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17883
diff changeset
   121
17910
8d796ca8bd1d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17892
diff changeset
   122
17911
a99f15c5efa5 Updated with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17910
diff changeset
   123