ClassChange.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 12 Jun 2013 11:54:30 +0100
branchjv
changeset 3303 7ed5d48e3756
parent 3285 90f2f3083f51
child 3422 9e7c2aec7846
permissions -rw-r--r--
Refactoring of class names and namespaces in ClassChange (part 1). The meaning of instvars in ClassChange was changed (well, actually it was defined), so: - className is the name of the class without any namespace prefix but including all owning classes. - nameSpaceName is the name of the original namespace of the class - nameSpaceOverride is client-enforced namespace namew - ownerClassName is the name of the owning class but without any namespace prefix. This commit actually fixes remaining RegressionTests::ChangeSetTests. CAUTION: currently, class names and namespace names are wrong when reading system changefile. This is due to a conceptual problem because there's no way how distinguish between namespace and owning class solely on the information in the changeset file. Next part of the refactoring should fix this, but at the cost of changing the changefile format. The impact to old tools not using ChangeSet but rather their own implementation must be investigated (tools like ChangesBrowser).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     1
"
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
     3
	      All Rights Reserved
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     4
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     5
 This software is furnished under a license and may be used
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     6
 only in accordance with the terms of that license and with the
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     8
 be provided or otherwise made available to, or used by, any
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     9
 other person.  No title to or ownership of the software is
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    10
 hereby transferred.
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    11
"
932
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
    13
0
470788421600 Initial revision
claus
parents:
diff changeset
    14
Change subclass:#ClassChange
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    15
	instanceVariableNames:'className classIsJava package nameSpaceOverride nameSpaceName
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    16
		owningClassName'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    17
	classVariableNames:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    18
	poolDictionaries:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    19
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    20
!
470788421600 Initial revision
claus
parents:
diff changeset
    21
634
eb5a3f4f4539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    22
!ClassChange class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    23
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    24
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    25
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    26
 COPYRIGHT (c) 1993 by Claus Gittinger
38
claus
parents: 10
diff changeset
    27
	      All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    28
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    29
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    30
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    32
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    33
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    34
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    35
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    36
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    37
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    38
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    39
"
45
claus
parents: 39
diff changeset
    40
    Abstract superclass for class related changes
1162
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    41
    They are typically held in a ChangeSet.
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    42
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    43
    [author:]
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 101
diff changeset
    44
        Claus Gittinger
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    45
        Jan Vrany
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    46
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    47
    [:instvars] incomplete
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    48
        className <String> ............ the class name *without* namespace, 
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    49
                                        but including all owners (if the class
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    50
                                        is private)
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    51
        owningClassName <String|nil> .. class name of the owning class if any
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    52
        nameSpaceName <String|nil> .... namespace name of the change or nil, if
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    53
                                        class is in no namespace.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    54
        nameSpaceOverride <String|nil>  enforced namespace in which the class will 
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    55
                                        should be installed.
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    56
"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    57
! !
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    58
634
eb5a3f4f4539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    59
!ClassChange class methodsFor:'instance creation'!
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    60
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    61
class:aClass
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    62
    ^ self new class:aClass
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    63
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    64
    "Created: 3.12.1995 / 14:01:32 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    65
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    66
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    67
class:aClass source:source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    68
    ^ self new class:aClass source:source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    69
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
    70
    "Created: 3.12.1995 / 14:01:32 / cg"
1903
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    71
!
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    72
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    73
className:aClassName
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    74
    ^ self new className:aClassName
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    75
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    76
    "Created: / 13-11-2006 / 10:37:39 / cg"
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    77
!
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    78
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    79
className:aClassName source:source
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    80
    ^ self new className:aClassName source:source
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    81
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
    82
    "Created: / 12-11-2006 / 20:11:26 / cg"
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    83
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    84
0
470788421600 Initial revision
claus
parents:
diff changeset
    85
!ClassChange methodsFor:'accessing'!
470788421600 Initial revision
claus
parents:
diff changeset
    86
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
    87
changeClass
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
    88
    "the class of the change (nil if not present).
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
    89
     Take care for changes from foreign Smalltalks having 
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
    90
     a different Namespace definition syntax"
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
    91
1897
6f60021f9058 comment
Claus Gittinger <cg@exept.de>
parents: 1870
diff changeset
    92
    "do not autoload an owning class of a private class!!"
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
    93
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    94
    |clsNm class owner altName nsName ns meta|
1855
0c365a83ffc2 care for class name aliases when getting an existing
Claus Gittinger <cg@exept.de>
parents: 1513
diff changeset
    95
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    96
    clsNm := self className.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
    97
    clsNm isNil ifTrue:[^ nil].
2245
335416c1cd10 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2169
diff changeset
    98
2555
86df1e00019f comment/format in: #classNameWithoutNamespace
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
    99
    "/ ok, try some heuristics (for example Root.something -> Smalltalk::something)
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   100
    (clsNm includes:$.) ifTrue:[
2094
09ded92b1604 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   101
        "/ VW - namespace prefix - convert to colon-notation
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   102
        clsNm := clsNm copyReplaceAll:$. withAll:'::'.
2520
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   103
    ].       
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   104
    nsName := self nameSpaceName ? 'Smalltalk'.
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   105
    nsName notNil ifTrue:[
2525
0d570c8def74 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2521
diff changeset
   106
        ns := Smalltalk at:nsName asSymbol.
0d570c8def74 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2521
diff changeset
   107
        ns isNil ifTrue:[
0d570c8def74 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2521
diff changeset
   108
            ns := NameSpace name:nsName
0d570c8def74 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2521
diff changeset
   109
        ]
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   110
    ].
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   111
    (meta := (clsNm endsWith:' class')) ifTrue:[    
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   112
        clsNm := clsNm copyButLast:6.
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   113
    ].
2094
09ded92b1604 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   114
2520
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   115
    ns := (ns ? Smalltalk).
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   116
    class := ns isNameSpace 
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   117
                ifTrue:[ ns loadedClassNamed:clsNm ]
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   118
                ifFalse:[ Smalltalk loadedClassNamed:clsNm ].     
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   119
    class isNil ifTrue:[
1905
51e766803c45 avoid endless recursion, if change is for a namespace definition.
boris
parents: 1903
diff changeset
   120
        self isPrivateClassDefinitionChange ifTrue:[
2612
be94644aae8c changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
   121
            ns isNameSpace ifTrue:[
be94644aae8c changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
   122
                owner := ns loadedClassNamed:(self owningClassName).
be94644aae8c changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
   123
            ] ifFalse:[
be94644aae8c changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
   124
                owner := Smalltalk loadedClassNamed:(self owningClassName).
be94644aae8c changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
   125
            ].
1905
51e766803c45 avoid endless recursion, if change is for a namespace definition.
boris
parents: 1903
diff changeset
   126
            owner notNil ifTrue:[
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   127
                class := owner privateClassesAt:clsNm.
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   128
                ^ meta ifTrue:[class theMetaclass] ifFalse:[class].
1905
51e766803c45 avoid endless recursion, if change is for a namespace definition.
boris
parents: 1903
diff changeset
   129
            ].
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   130
        ] ifFalse:[
2520
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   131
            class := ns isNameSpace 
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   132
                        ifTrue:[ ns classNamed:clsNm ]
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   133
                        ifFalse:[ Smalltalk loadedClassNamed:clsNm ].     
2520
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   134
2057
7324483675da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   135
            "/ class := Parser evaluate:className ifFail:[nil].
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   136
            class isNil ifTrue:[
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   137
                (altName := self classNameForWellKnownVisualWorksNamespaceClass:clsNm) notNil
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   138
                ifTrue:[
2520
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   139
                    class := ns isNameSpace 
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   140
                                ifTrue:[ ns classNamed:altName ]
092b3abcd994 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2514
diff changeset
   141
                                ifFalse:[ Smalltalk loadedClassNamed:altName ].     
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   142
                    class isNil ifTrue:[
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   143
                        class := Parser evaluate:altName ifFail:[nil]
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   144
                    ]
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   145
                ].
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   146
            ].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   147
        ].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   148
        class isNil ifTrue:[
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   149
            ns ~= Smalltalk ifTrue:[
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   150
                self isPrivateClassDefinitionChange ifTrue:[
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   151
                    owner := Smalltalk loadedClassNamed:(self owningClassName).
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   152
                    owner notNil ifTrue:[
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   153
                        class := owner privateClassesAt:clsNm.
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   154
                        ^ meta ifTrue:[class theMetaclass] ifFalse:[class].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   155
                    ].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   156
                ] ifFalse:[
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   157
                    class := Smalltalk classNamed:clsNm.
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   158
                    "/ class := Parser evaluate:className ifFail:[nil].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   159
                    class isNil ifTrue:[
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   160
                        ^ nil.
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   161
                    ].
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   162
                ].
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   163
            ].
2521
8b8890f94458 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2520
diff changeset
   164
            class isNil ifTrue:[^ nil].
1870
55f67b913779 +owner access and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
   165
        ].
55f67b913779 +owner access and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
   166
    ].
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   167
1855
0c365a83ffc2 care for class name aliases when getting an existing
Claus Gittinger <cg@exept.de>
parents: 1513
diff changeset
   168
    "/ care for aliases...
2521
8b8890f94458 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2520
diff changeset
   169
    "/ (class nameWithoutPrefix ~= className) ifTrue:[ ^ nil ].
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   170
    ^ meta ifTrue:[class theMetaclass] ifFalse:[class].
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   171
2901
6b85ec626617 fixed namespaceoverride (for changeSetBrowser)
Claus Gittinger <cg@exept.de>
parents: 2815
diff changeset
   172
    "Modified: / 10-08-2012 / 12:07:26 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   173
    "Modified: / 11-06-2013 / 17:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
   174
!
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
   175
1040
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   176
changeClass:aClass
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   177
    "set the class of the change"
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   178
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   179
    className := aClass name.
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   180
!
552c3a8b2b5c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 962
diff changeset
   181
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   182
class:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   183
    "set the class of the change"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   184
1903
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
   185
    self className:aClass name.
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   186
1903
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
   187
    "Created: / 03-12-1995 / 14:01:45 / cg"
fc7a6b27312e changed #class:
Claus Gittinger <cg@exept.de>
parents: 1897
diff changeset
   188
    "Modified: / 12-11-2006 / 20:10:28 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   189
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   190
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   191
class:aClass source:newSource
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   192
    "set both class and source of the change"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   193
1286
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   194
    self className:(aClass name) source:newSource
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   195
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1046
diff changeset
   196
1305
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   197
classBaseName 
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   198
    "return the className of the change"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   199
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   200
    ^ self cutNameSpaceOf:className
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   201
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   202
    "Modified: 15.7.1996 / 09:28:35 / cg"
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   203
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   204
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   205
className
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   206
    "Returns class name of the class *without* namespace, but with
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   207
     all owning classes (if the change class is a private class)"
3221
7fa1821ca907 namespace handling fixed (I hope)
Claus Gittinger <cg@exept.de>
parents: 3216
diff changeset
   208
    ^ className
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   209
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   210
    "Modified (comment): / 12-06-2013 / 11:33:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   211
!
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   212
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   213
className:aString 
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   214
    "set the className of the change"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   215
3183
71641876b951 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3151
diff changeset
   216
    self assert:aString notNil.
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   217
    className := aString
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   218
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   219
    "Modified: / 15.7.1996 / 09:28:35 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 634
diff changeset
   220
    "Created: / 16.2.1998 / 13:05:36 / cg"
1233
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   221
!
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   222
1286
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   223
className:newClassName source:newSource
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   224
    "set both className and source of the change"
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   225
1469
7ddc832d7612 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1305
diff changeset
   226
    self assert:(newSource isString).
7ddc832d7612 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1305
diff changeset
   227
    self assert:(newClassName isString).
7ddc832d7612 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1305
diff changeset
   228
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   229
    self className: newClassName.
1286
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   230
    source := newSource.
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   231
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   232
    "Created: / 03-12-1995 / 14:01:45 / cg"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   233
    "Modified: / 15-07-1996 / 09:28:26 / cg"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   234
    "Modified: / 11-06-2013 / 17:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1286
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   235
!
621aac0264a7 catch non-string source args
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   236
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   237
classNameForWellKnownVisualWorksNamespaceClass:className
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   238
    (className startsWith:'Root::') ifTrue:[
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   239
        ^ className copyFrom:7.
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   240
    ].
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   241
    (className startsWith:'Core.') ifTrue:[
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   242
        ^ className copyFrom:6.
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   243
    ].
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   244
    (className startsWith:'Smalltalk.') ifTrue:[
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   245
        ^ className copyFrom:11.
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   246
    ].
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   247
    ^ nil
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   248
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   249
    "Created: / 29-01-2011 / 11:29:59 / cg"
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   250
!
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   251
1305
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   252
classNameWithoutNamespace
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   253
    "return the className of the change"
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   254
3221
7fa1821ca907 namespace handling fixed (I hope)
Claus Gittinger <cg@exept.de>
parents: 3216
diff changeset
   255
    ^ self cutMyNameSpaceOf: "cutNameSpaceOf:"className
1305
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   256
2555
86df1e00019f comment/format in: #classNameWithoutNamespace
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
   257
    "Modified: / 06-10-2011 / 16:58:34 / cg"
1305
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   258
!
3aa4dc506e56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1304
diff changeset
   259
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   260
fullClassName
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   261
    "Returns fully qualified class name, i.e., including namespace in which the
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   262
     class should be installed (i.e., the override namespace if any rather than
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   263
     original namespace)"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   264
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   265
    |ns|
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   266
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   267
    "/ used to be ^ className;
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   268
    "/
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   269
    "/ now include a translation from vw namespace to stx nameSpace
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   270
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   271
    ns := self nameSpaceName.
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   272
    (ns isNil or:[ns = 'Smalltalk']) ifTrue:[^ self className].
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   273
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   274
    ^ ns , '::' , self className
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   275
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   276
    "Modified (comment): / 12-06-2013 / 11:35:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   277
!
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   278
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   279
localClassName
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   280
    "for private classes, this returns the name relative to its owner;
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   281
     for non-private ones, this is the regular name.
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   282
     Notice that className always returns the full name (incl. any owner prefix)
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   283
     but *without* any namespace prefix"
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   284
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   285
    ^self className
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   286
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   287
    "Modified (comment): / 12-06-2013 / 11:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   288
!
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   289
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   290
nameSpace
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   291
    |nsName nameSpace|
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   292
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   293
    (nsName := self nameSpaceName) notNil ifTrue:[
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   294
        ^ NameSpace name:nsName.
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   295
    ].
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   296
    ^ Smalltalk
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   297
!
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   298
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   299
nameSpace: aNameSpace
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   300
    self nameSpaceName: aNameSpace name
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   301
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   302
    "Created: / 11-06-2013 / 15:57:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   303
!
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   304
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   305
nameSpaceName
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   306
    "Return the namespace in which the class should be installed.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   307
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   308
     If the user enforces a namespace using nameSpaceOverride or
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   309
     using query signal, then the enforced namespace is returned.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   310
     Otherwise, changes's original namespace is returned, if any."
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   311
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   312
    | ns |
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   313
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   314
    className isNil ifTrue:[^ nil].
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   315
3271
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   316
    ns := self nameSpaceOverride.
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   317
    ns notNil ifTrue:[ ^ ns ].
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   318
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   319
"/  JV: Following code is rubbish because it cannot distiguish
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   320
"/      between namespace and owning class...
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   321
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   322
"/    (idx := className indexOf:$:) ~~ 0 ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   323
"/        "/ in a namespace
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   324
"/        ^ className copyTo:(idx - 1).
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   325
"/    ].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   326
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   327
"/  JV: I commented following It is not clear to how it is supposed to
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   328
"/      work. If anybody wants this back, he/she should first write
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   329
"/      a testcase to demonstare how it should work.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   330
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   331
"/    (idx := className indexOf:$.) ~~ 0 ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   332
"/        "/ in a namespace
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   333
"/        ns := className copyTo:(idx - 1).
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   334
"/        cnm := className copyFrom:(idx + 1).
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   335
"/        "cheat: VW namespaces"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   336
"/        ^ self nameSpaceForVWNamespace:ns class:cnm ifAbsent:ns
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   337
"/    ].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   338
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   339
    ^ nameSpaceName
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   340
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   341
    "Modified: / 03-08-2006 / 02:04:03 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   342
    "Modified: / 11-06-2013 / 15:03:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   343
    "Modified (comment): / 12-06-2013 / 11:33:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   344
!
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   345
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   346
nameSpaceName: aString
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   347
    nameSpaceName := aString ~= 'Smalltalk' ifTrue:[aString] ifFalse:[nil].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   348
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   349
    "Created: / 11-06-2013 / 15:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3151
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   350
!
7b9ea70d52bf class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3135
diff changeset
   351
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   352
nameSpaceOverride
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   353
    "Return namespace enforced by the caller"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   354
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   355
    |ns|
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   356
3110
7fae5b85d143 class: ClassChange
Stefan Vogel <sv@exept.de>
parents: 2901
diff changeset
   357
    ns := nameSpaceOverride.
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   358
    (ns isNil and:[Class nameSpaceQuerySignal isHandled]) ifTrue:[
3110
7fae5b85d143 class: ClassChange
Stefan Vogel <sv@exept.de>
parents: 2901
diff changeset
   359
        ns := Class nameSpaceQuerySignal query.
7fae5b85d143 class: ClassChange
Stefan Vogel <sv@exept.de>
parents: 2901
diff changeset
   360
    ].
3221
7fa1821ca907 namespace handling fixed (I hope)
Claus Gittinger <cg@exept.de>
parents: 3216
diff changeset
   361
    ns isNil ifTrue:[^ nil].
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   362
    ^ ns name
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   363
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   364
    "Created: / 07-09-2011 / 20:45:43 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   365
    "Modified: / 11-06-2013 / 16:07:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   366
    "Modified (comment): / 12-06-2013 / 11:31:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   367
!
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   368
3135
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   369
nameSpaceOverride:aNamespaceOrString
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   370
    aNamespaceOrString isString ifTrue:[
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   371
        nameSpaceOverride := NameSpace name:aNamespaceOrString
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   372
    ] ifFalse:[
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   373
        nameSpaceOverride := aNamespaceOrString
3ae7768a2216 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3110
diff changeset
   374
    ]
2815
a87f6217b606 added: #nameSpaceOverride:
Claus Gittinger <cg@exept.de>
parents: 2612
diff changeset
   375
a87f6217b606 added: #nameSpaceOverride:
Claus Gittinger <cg@exept.de>
parents: 2612
diff changeset
   376
    "Created: / 20-03-2012 / 17:12:08 / cg"
a87f6217b606 added: #nameSpaceOverride:
Claus Gittinger <cg@exept.de>
parents: 2612
diff changeset
   377
!
a87f6217b606 added: #nameSpaceOverride:
Claus Gittinger <cg@exept.de>
parents: 2612
diff changeset
   378
2169
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   379
nonMetaClassName
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   380
    ^ self isForMeta
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   381
	ifTrue:[ self className copyTo:(self className size - 6) ]
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   382
	ifFalse:[ self className ]
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   383
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   384
    "Created: / 06-11-2008 / 17:26:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   385
!
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   386
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   387
owningClassName
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   388
    ^ owningClassName
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   389
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   390
    "Modified: / 11-06-2013 / 14:50:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   391
!
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   392
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   393
owningClassName:aStringOrSymbol
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   394
    owningClassName := aStringOrSymbol
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   395
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   396
    "Created: / 30-08-2010 / 13:55:37 / cg"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   397
!
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3285
diff changeset
   398
1233
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   399
package
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   400
    "return the value of the instance variable 'package' (automatically generated)"
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   401
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   402
    ^ package
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   403
!
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   404
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   405
package:something
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   406
    "set the value of the instance variable 'package' (automatically generated)"
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   407
4eef6fafcffb james' package changes
james
parents: 1203
diff changeset
   408
    package := something.
0
470788421600 Initial revision
claus
parents:
diff changeset
   409
! !
470788421600 Initial revision
claus
parents:
diff changeset
   410
859
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   411
!ClassChange methodsFor:'applying'!
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   412
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   413
apply
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   414
    "apply the change"
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   415
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   416
    |class|
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   417
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   418
    class := self changeClass.
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   419
    class isNil ifTrue:[
2078
e749382ae30a allow proceed
Claus Gittinger <cg@exept.de>
parents: 2057
diff changeset
   420
        self error:('Cannot apply change for missing class: ' , className) mayProceed:true.
e749382ae30a allow proceed
Claus Gittinger <cg@exept.de>
parents: 2057
diff changeset
   421
        ^ self
2019
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   422
    ].
685031a55645 changed #apply: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 1905
diff changeset
   423
    class autoload.         "Most changes cannot be applied to unloaded classes"
2315
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   424
    Class nameSpaceQuerySignal answer:self nameSpace do:[
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   425
        Parser evaluate:(self source)
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   426
    ].
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   427
"/    |ns|
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   428
"/
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   429
"/    ns := Class nameSpaceQuerySignal isHandled 
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   430
"/            ifTrue:[ Class nameSpaceQuerySignal query ]
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   431
"/            ifFalse:[ self nameSpace ].
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   432
"/
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   433
"/    Class nameSpaceQuerySignal answer:ns do:[
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   434
"/        Parser evaluate:(self source)
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   435
"/    ].
2315
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   436
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   437
    "Modified: / 29-01-2011 / 12:28:03 / cg"
859
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   438
! !
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
   439
962
3821ab69b939 category change
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   440
!ClassChange methodsFor:'printing & storing'!
101
9a1c22e807e0 more changeSet stuff
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   441
9a1c22e807e0 more changeSet stuff
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   442
printOn:aStream
801
b84b61eaa2f6 comment
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   443
    "append a user printed representation of the receiver to aStream.
b84b61eaa2f6 comment
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   444
     The format is suitable for a human - not meant to be read back."
b84b61eaa2f6 comment
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   445
911
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 859
diff changeset
   446
    source isNil ifTrue:[
3183
71641876b951 class: ClassChange
Claus Gittinger <cg@exept.de>
parents: 3151
diff changeset
   447
        aStream nextPutAll:self class nameWithArticle,'-change (no source)'.
911
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 859
diff changeset
   448
        ^ self
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 859
diff changeset
   449
    ].
1469
7ddc832d7612 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1305
diff changeset
   450
    aStream nextPutAll:(self class name , ' - ' , source string firstLine , '...').
101
9a1c22e807e0 more changeSet stuff
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   451
! !
9a1c22e807e0 more changeSet stuff
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
   452
932
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   453
!ClassChange methodsFor:'queries'!
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   454
2315
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   455
cutMyNameSpaceOf:aString
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   456
    |ns|
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   457
3216
9c175e6d1a7f class: ClassChange
Stefan Vogel <sv@exept.de>
parents: 3183
diff changeset
   458
    aString isNil ifTrue:[ ^ nil ].
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   459
    (ns := self nameSpaceOverride) isNil ifTrue:[ ^ aString ].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   460
    (aString startsWith:(ns , '.')) ifTrue:[ ^ self cutNameSpaceOf:aString ].
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   461
    (aString startsWith:(ns , '::')) ifTrue:[ ^ self cutNameSpaceOf:aString ].
2315
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   462
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   463
    ^ aString
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   464
2514
36e11e387006 handle namespace overrides (for mc browser)
Claus Gittinger <cg@exept.de>
parents: 2315
diff changeset
   465
    "Modified: / 07-09-2011 / 20:49:33 / cg"
2315
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   466
!
dde09d0ab7bf class definition
Claus Gittinger <cg@exept.de>
parents: 2314
diff changeset
   467
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   468
cutNameSpaceOf:aString
1304
737056524bd2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1303
diff changeset
   469
    |dotIndex colonIndex|
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   470
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   471
    aString isNil ifTrue:[ ^ nil].
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   472
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   473
    dotIndex := aString indexOf:$..
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   474
    dotIndex ~~ 0 ifTrue:[
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   475
        ^ aString copyFrom:dotIndex+1
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   476
    ].
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   477
    colonIndex := aString indexOf:$:.
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   478
    colonIndex ~~ 0 ifTrue:[
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   479
        ^ aString copyFrom:colonIndex+2
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   480
    ].
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   481
    ^ aString
2314
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   482
ba70ddd96c9e added: #classNameForWellKnownVisualWorksNamespaceClass:
Claus Gittinger <cg@exept.de>
parents: 2245
diff changeset
   483
    "Modified: / 29-01-2011 / 11:32:01 / cg"
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   484
!
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1162
diff changeset
   485
932
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   486
isClassChange
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   487
    ^ true
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   488
!
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   489
2169
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   490
isForMeta
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   491
    ^ (self className endsWith:' class')
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   492
!
Claus Gittinger <cg@exept.de>
parents: 2094
diff changeset
   493
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   494
nameSpaceForVWNamespace:ns class:className ifAbsent:default
2094
09ded92b1604 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   495
    "map the namespace for a given class - hack; only works for some"
1303
36df29ea195d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   496
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   497
    ns = 'Core' ifTrue:[^ 'Smalltalk'].
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   498
    ns = 'Kernel' ifTrue:[^ 'Smalltalk'].
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   499
    ns = 'Graphics' ifTrue:[^ 'Smalltalk'].
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   500
    ns = 'OS' ifTrue:[^ 'Smalltalk'].
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   501
    ns = 'Smalltalk' ifTrue:[^ 'Smalltalk'].
1303
36df29ea195d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
   502
    ns = 'UI' ifTrue:[^ 'Smalltalk'].
1300
3847c8f8a4f5 handle NS.Classname (vw files)
Claus Gittinger <cg@exept.de>
parents: 1286
diff changeset
   503
    ^ default value
932
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   504
! !
8028d375f842 #isClassChange query
Claus Gittinger <cg@exept.de>
parents: 918
diff changeset
   505
634
eb5a3f4f4539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   506
!ClassChange class methodsFor:'documentation'!
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   507
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   508
version
3271
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   509
    ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.74 2013-05-09 12:49:14 vrany Exp $'
2245
335416c1cd10 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2169
diff changeset
   510
!
335416c1cd10 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2169
diff changeset
   511
335416c1cd10 changed: #changeClass
Claus Gittinger <cg@exept.de>
parents: 2169
diff changeset
   512
version_CVS
3271
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   513
    ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.74 2013-05-09 12:49:14 vrany Exp $'
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   514
!
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   515
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   516
version_HG
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   517
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   518
    ^ '$Changeset: <not expanded> $'
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   519
!
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   520
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   521
version_SVN
3f992fda1fa6 class: ClassChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
   522
    ^ '$Id: ClassChange.st,v 1.74 2013-05-09 12:49:14 vrany Exp $'
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   523
! !
3110
7fae5b85d143 class: ClassChange
Stefan Vogel <sv@exept.de>
parents: 2901
diff changeset
   524