ClassRenameChange.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 12 Jun 2013 11:54:30 +0100
branchjv
changeset 3303 7ed5d48e3756
parent 3219 92e64a42ab4e
child 3838 474d8ec95b33
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:
798
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     1
"
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     2
 COPYRIGHT (c) 1998 by eXept Software AG
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     3
              All Rights Reserved
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     4
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     5
 This software is furnished under a license and may be used
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     6
 only in accordance with the terms of that license and with the
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     8
 be provided or otherwise made available to, or used by, any
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
     9
 other person.  No title to or ownership of the software is
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    10
 hereby transferred.
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    11
"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    13
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ClassChange subclass:#ClassRenameChange
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    15
	instanceVariableNames:'oldName'
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'System-Changes'
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!ClassRenameChange class methodsFor:'documentation'!
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
798
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    23
copyright
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    24
"
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    25
 COPYRIGHT (c) 1998 by eXept Software AG
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    26
              All Rights Reserved
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
798
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    28
 This software is furnished under a license and may be used
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    29
 only in accordance with the terms of that license and with the
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    31
 be provided or otherwise made available to, or used by, any
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    32
 other person.  No title to or ownership of the software is
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    33
 hereby transferred.
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    34
"
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    35
1162
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    36
!
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    37
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    38
documentation
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    39
"
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    40
    instances represent a class-has-been-renamed change. 
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    41
    They are typically held in a ChangeSet.
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    42
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    43
    [author:]
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    44
        Claus Gittinger
4af27057a3ce comment
Claus Gittinger <cg@exept.de>
parents: 1096
diff changeset
    45
"
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
! !
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!ClassRenameChange methodsFor:'accessing'!
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
1234
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    50
oldName
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    51
    "return the value of the instance variable 'oldName' (automatically generated)"
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    52
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    53
    ^ oldName
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    54
!
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
    55
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    56
oldName:oldNameArg newName:newNameArg
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    57
    className := newNameArg.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    58
    oldName := oldNameArg
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    "Created: / 16.2.1998 / 14:22:38 / cg"
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
! !
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
3070
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    63
!ClassRenameChange methodsFor:'applying'!
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    64
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    65
apply
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    66
    "apply the change"
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    67
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    68
    |class|
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    69
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    70
    "JV@2012-07-31: Here, must test agains __OLD__ class"
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    71
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    72
    class := Smalltalk at: oldName asSymbol.
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    73
    class isNil ifTrue:[
3071
e7d3b6595759 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3070
diff changeset
    74
        self changeClass notNil ifTrue:[
e7d3b6595759 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3070
diff changeset
    75
            "Previously applied change?"
e7d3b6595759 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3070
diff changeset
    76
            ^self.
e7d3b6595759 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3070
diff changeset
    77
        ].
3070
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    78
        self error:('Cannot apply change for missing class: ' , className) mayProceed:true.
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    79
        ^ self
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    80
    ].
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    81
    class autoload.         "Most changes cannot be applied to unloaded classes"
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    82
    Class nameSpaceQuerySignal answer:self nameSpace do:[
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    83
        Parser evaluate:(self source)
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    84
    ].
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    85
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    86
    "Created: / 31-07-2012 / 18:58:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    87
! !
ec9cb08c71c8 - ClassRenameChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3042
diff changeset
    88
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!ClassRenameChange methodsFor:'printing'!
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
printOn:aStream
3181
3ac0c92b12b0 class: ClassRenameChange
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
    92
    aStream nextPutAll:'Smalltalk renameClass: ';
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    93
            nextPutAll:oldName;
3181
3ac0c92b12b0 class: ClassRenameChange
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
    94
            nextPutAll:' to: ';
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
    95
            nextPutAll:className storeString
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    "Created: / 16.2.1998 / 14:23:35 / cg"
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
! !
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
1234
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   100
!ClassRenameChange methodsFor:'queries'!
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   101
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   102
isClassRenameChange
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   103
    ^ true
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   104
! !
2edbb63a70b7 james' package changes
james
parents: 1162
diff changeset
   105
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!ClassRenameChange class methodsFor:'documentation'!
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
version
3181
3ac0c92b12b0 class: ClassRenameChange
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
   109
    ^ '$Header: /cvs/stx/stx/libbasic3/ClassRenameChange.st,v 1.6 2013-04-02 19:21:26 cg Exp $'
3121
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   110
!
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   111
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   112
version_HG
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   113
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   114
    ^ '$Changeset: <not expanded> $'
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   115
!
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   116
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   117
version_SVN
3121
19723298dd2c Bugfix: reading of Java class extensions methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3071
diff changeset
   118
    ^ '§Id: ClassRenameChange.st 1948 2012-07-31 18:04:54Z vranyj1 §'
653
b873bb41ef10 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
! !
3181
3ac0c92b12b0 class: ClassRenameChange
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
   120