packages/ChangeFaker.st
author james
Fri, 09 May 2003 14:24:21 +0200
changeset 1267 b3b28df0a38e
child 1268 9dc8d1b8ce9b
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1267
b3b28df0a38e initial checkin
james
parents:
diff changeset
     1
"{ Package: 'stx:libbasic3' }"
b3b28df0a38e initial checkin
james
parents:
diff changeset
     2
b3b28df0a38e initial checkin
james
parents:
diff changeset
     3
"{ NameSpace: Packages }"
b3b28df0a38e initial checkin
james
parents:
diff changeset
     4
b3b28df0a38e initial checkin
james
parents:
diff changeset
     5
Object subclass:#ChangeFaker
b3b28df0a38e initial checkin
james
parents:
diff changeset
     6
	instanceVariableNames:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
     7
	classVariableNames:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
     8
	poolDictionaries:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
     9
	category:'Package-helpers'
b3b28df0a38e initial checkin
james
parents:
diff changeset
    10
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    11
b3b28df0a38e initial checkin
james
parents:
diff changeset
    12
ClassChange subclass:#ClassPackageChange
b3b28df0a38e initial checkin
james
parents:
diff changeset
    13
	instanceVariableNames:'oldPackageName'
b3b28df0a38e initial checkin
james
parents:
diff changeset
    14
	classVariableNames:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
    15
	poolDictionaries:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
    16
	privateIn:ChangeFaker
b3b28df0a38e initial checkin
james
parents:
diff changeset
    17
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    18
b3b28df0a38e initial checkin
james
parents:
diff changeset
    19
MethodChange subclass:#MethodPackageChange
b3b28df0a38e initial checkin
james
parents:
diff changeset
    20
	instanceVariableNames:'oldPackageName'
b3b28df0a38e initial checkin
james
parents:
diff changeset
    21
	classVariableNames:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
    22
	poolDictionaries:''
b3b28df0a38e initial checkin
james
parents:
diff changeset
    23
	privateIn:ChangeFaker
b3b28df0a38e initial checkin
james
parents:
diff changeset
    24
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    25
b3b28df0a38e initial checkin
james
parents:
diff changeset
    26
b3b28df0a38e initial checkin
james
parents:
diff changeset
    27
!ChangeFaker class methodsFor:'initialization'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    28
b3b28df0a38e initial checkin
james
parents:
diff changeset
    29
initialize
b3b28df0a38e initial checkin
james
parents:
diff changeset
    30
    Smalltalk addDependent:self.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    31
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    32
b3b28df0a38e initial checkin
james
parents:
diff changeset
    33
update:something with:aParameter from:changedObject
b3b28df0a38e initial checkin
james
parents:
diff changeset
    34
    | oldPackageName movedClass methodOwnedClass oldMethod|
b3b28df0a38e initial checkin
james
parents:
diff changeset
    35
    (something == #projectOrganization) ifTrue:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    36
        aParameter ifNil:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    37
            "no need to know about this. It has probably already been past here already!!"
b3b28df0a38e initial checkin
james
parents:
diff changeset
    38
            ^ self
b3b28df0a38e initial checkin
james
parents:
diff changeset
    39
        ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    40
b3b28df0a38e initial checkin
james
parents:
diff changeset
    41
        aParameter size == 1 ifTrue:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    42
            Transcript 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    43
                    nextPutAll:'From PackageManager>>update:with:from:' ; 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    44
                    cr;
b3b28df0a38e initial checkin
james
parents:
diff changeset
    45
                    nextPutAll:'When does this happen' ; 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    46
                    cr.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    47
                    "checking out changedObject = Smalltalk"
b3b28df0a38e initial checkin
james
parents:
diff changeset
    48
b3b28df0a38e initial checkin
james
parents:
diff changeset
    49
            ^ self.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    50
        ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    51
b3b28df0a38e initial checkin
james
parents:
diff changeset
    52
        aParameter size == 2 ifTrue:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    53
               oldPackageName := aParameter second.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    54
               movedClass := aParameter first.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    55
               (oldPackageName isSymbol) ifTrue:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    56
               
b3b28df0a38e initial checkin
james
parents:
diff changeset
    57
               self classMovePackageChangeWithClass:movedClass
b3b28df0a38e initial checkin
james
parents:
diff changeset
    58
                    oldPackageName:oldPackageName.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    59
b3b28df0a38e initial checkin
james
parents:
diff changeset
    60
            ^ self.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    61
            ] ifFalse:[  
b3b28df0a38e initial checkin
james
parents:
diff changeset
    62
                "it is a method move but the change will be called again as 3 parameters
b3b28df0a38e initial checkin
james
parents:
diff changeset
    63
                 it is implemented in two ways. One by NewSystemBrowser>>moveMethods:toProject:
b3b28df0a38e initial checkin
james
parents:
diff changeset
    64
                 and  Method>>package i only care for the one implemented in method as it gives
b3b28df0a38e initial checkin
james
parents:
diff changeset
    65
                 me the previous package information"
b3b28df0a38e initial checkin
james
parents:
diff changeset
    66
                ^ self
b3b28df0a38e initial checkin
james
parents:
diff changeset
    67
            ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    68
        ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    69
b3b28df0a38e initial checkin
james
parents:
diff changeset
    70
        aParameter size == 3 ifTrue:[
b3b28df0a38e initial checkin
james
parents:
diff changeset
    71
                oldMethod := (aParameter second).
b3b28df0a38e initial checkin
james
parents:
diff changeset
    72
                methodOwnedClass := (aParameter first).
b3b28df0a38e initial checkin
james
parents:
diff changeset
    73
                oldPackageName :=  (aParameter third).
b3b28df0a38e initial checkin
james
parents:
diff changeset
    74
                self 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    75
                    methodMovePackageChangeWithMethod:oldMethod      
b3b28df0a38e initial checkin
james
parents:
diff changeset
    76
                    class:methodOwnedClass 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    77
                    oldPackageName:oldPackageName.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    78
                ^ self.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    79
        ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    80
        self breakPoint:''.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    81
    ].
b3b28df0a38e initial checkin
james
parents:
diff changeset
    82
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
    83
b3b28df0a38e initial checkin
james
parents:
diff changeset
    84
!ChangeFaker class methodsFor:'accessing'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    85
b3b28df0a38e initial checkin
james
parents:
diff changeset
    86
changeSet
b3b28df0a38e initial checkin
james
parents:
diff changeset
    87
    ^ ChangeSet current
b3b28df0a38e initial checkin
james
parents:
diff changeset
    88
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
    89
b3b28df0a38e initial checkin
james
parents:
diff changeset
    90
!ChangeFaker class methodsFor:'faked - changes'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    91
b3b28df0a38e initial checkin
james
parents:
diff changeset
    92
classMovePackageChangeWithClass:class oldPackageName:oldPackageName 
b3b28df0a38e initial checkin
james
parents:
diff changeset
    93
    | fakedChange |
b3b28df0a38e initial checkin
james
parents:
diff changeset
    94
    fakedChange := ClassPackageChange className:class name oldPackageName:oldPackageName.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    95
    self changeSet changed:#addChange: with:fakedChange.
b3b28df0a38e initial checkin
james
parents:
diff changeset
    96
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
    97
b3b28df0a38e initial checkin
james
parents:
diff changeset
    98
methodMovePackageChangeWithMethod:movedMethod class:methodOwnedClass oldPackageName:oldPackageName
b3b28df0a38e initial checkin
james
parents:
diff changeset
    99
    | fakedChange |
b3b28df0a38e initial checkin
james
parents:
diff changeset
   100
    fakedChange := (MethodPackageChange new) 
b3b28df0a38e initial checkin
james
parents:
diff changeset
   101
            previousVersion:movedMethod;
b3b28df0a38e initial checkin
james
parents:
diff changeset
   102
            className:methodOwnedClass name;
b3b28df0a38e initial checkin
james
parents:
diff changeset
   103
            oldPackageName:oldPackageName.
b3b28df0a38e initial checkin
james
parents:
diff changeset
   104
b3b28df0a38e initial checkin
james
parents:
diff changeset
   105
    self changeSet changed:#addChange: with:fakedChange.
b3b28df0a38e initial checkin
james
parents:
diff changeset
   106
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
   107
b3b28df0a38e initial checkin
james
parents:
diff changeset
   108
!ChangeFaker::ClassPackageChange class methodsFor:'instance creation'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   109
b3b28df0a38e initial checkin
james
parents:
diff changeset
   110
className:className oldPackageName:oldPackageName 
b3b28df0a38e initial checkin
james
parents:
diff changeset
   111
    ^ (self basicNew) 
b3b28df0a38e initial checkin
james
parents:
diff changeset
   112
            className:className;
b3b28df0a38e initial checkin
james
parents:
diff changeset
   113
            oldPackageName:oldPackageName;
b3b28df0a38e initial checkin
james
parents:
diff changeset
   114
            package:(Smalltalk classNamed:className) package
b3b28df0a38e initial checkin
james
parents:
diff changeset
   115
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
   116
b3b28df0a38e initial checkin
james
parents:
diff changeset
   117
!ChangeFaker::ClassPackageChange methodsFor:'accessing'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   118
b3b28df0a38e initial checkin
james
parents:
diff changeset
   119
oldPackageName
b3b28df0a38e initial checkin
james
parents:
diff changeset
   120
    "return the value of the instance variable 'oldPackageName' (automatically generated)"
b3b28df0a38e initial checkin
james
parents:
diff changeset
   121
b3b28df0a38e initial checkin
james
parents:
diff changeset
   122
    ^ oldPackageName
b3b28df0a38e initial checkin
james
parents:
diff changeset
   123
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   124
b3b28df0a38e initial checkin
james
parents:
diff changeset
   125
oldPackageName:something
b3b28df0a38e initial checkin
james
parents:
diff changeset
   126
    "set the value of the instance variable 'oldPackageName' (automatically generated)"
b3b28df0a38e initial checkin
james
parents:
diff changeset
   127
b3b28df0a38e initial checkin
james
parents:
diff changeset
   128
    oldPackageName := something.
b3b28df0a38e initial checkin
james
parents:
diff changeset
   129
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
   130
b3b28df0a38e initial checkin
james
parents:
diff changeset
   131
!ChangeFaker::MethodPackageChange methodsFor:'accessing'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   132
b3b28df0a38e initial checkin
james
parents:
diff changeset
   133
oldPackageName
b3b28df0a38e initial checkin
james
parents:
diff changeset
   134
    "return the value of the instance variable 'oldPackageName' (automatically generated)"
b3b28df0a38e initial checkin
james
parents:
diff changeset
   135
b3b28df0a38e initial checkin
james
parents:
diff changeset
   136
    ^ oldPackageName
b3b28df0a38e initial checkin
james
parents:
diff changeset
   137
!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   138
b3b28df0a38e initial checkin
james
parents:
diff changeset
   139
oldPackageName:something
b3b28df0a38e initial checkin
james
parents:
diff changeset
   140
    "set the value of the instance variable 'oldPackageName' (automatically generated)"
b3b28df0a38e initial checkin
james
parents:
diff changeset
   141
b3b28df0a38e initial checkin
james
parents:
diff changeset
   142
    oldPackageName := something.
b3b28df0a38e initial checkin
james
parents:
diff changeset
   143
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
   144
b3b28df0a38e initial checkin
james
parents:
diff changeset
   145
!ChangeFaker class methodsFor:'documentation'!
b3b28df0a38e initial checkin
james
parents:
diff changeset
   146
b3b28df0a38e initial checkin
james
parents:
diff changeset
   147
version
b3b28df0a38e initial checkin
james
parents:
diff changeset
   148
    ^ '$Header: /cvs/stx/stx/libbasic3/packages/ChangeFaker.st,v 1.1 2003-05-09 12:24:21 james Exp $'
b3b28df0a38e initial checkin
james
parents:
diff changeset
   149
! !
b3b28df0a38e initial checkin
james
parents:
diff changeset
   150
b3b28df0a38e initial checkin
james
parents:
diff changeset
   151
ChangeFaker initialize!