packages/DefaultPackage.st
author james
Wed, 09 Apr 2003 13:23:18 +0200
changeset 1226 adff4760750f
child 1444 b48e0dc3740e
permissions -rw-r--r--
initial checkin

"{ Package: 'stx:libbasic3' }"

"{ NameSpace: Packages }"

Package subclass:#DefaultPackage
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Package'
!


!DefaultPackage methodsFor:'changes'!

classChange:classChange
    | newClass |
    newClass := (Smalltalk classNamed:classChange className).
    newClass ifNil:[
        self error:'The class named ', newClass name,
            'does not exist!! It is expected to exist from a class change!!'
    ].

    self addedClass:newClass.
    self changed:#classChange: with:classChange
!

classDefinitionChange:aClassDefinitionChange 
    | newClass |
    newClass := (Smalltalk classNamed:aClassDefinitionChange className).
    newClass ifNil:[
        self error:'The class named ', newClass name,
            'does not exist!! It is expected to exist from a class redefinition action!!'
    ].

    self addedClass:newClass.
    self changed:#classDefinitionChange: with:aClassDefinitionChange
!

classInstVarDefinitionChange:aClassInstVarDefinitionChange 

    | newClass |
    newClass := (Smalltalk classNamed:aClassInstVarDefinitionChange className).
    newClass ifNil:[
        self error:'The class named ', newClass name,
            'does not exist!! It is expected to exist from a class redefinition action!!'
    ].

    self addedClass:newClass.
    self changed:#classDefinitionChange: with:aClassInstVarDefinitionChange
!

classRemoveChange:aClassRemoveChange

    self removedClassNamed:aClassRemoveChange className.
    self changed:#classRemoveChange: with:aClassRemoveChange
!

methodChanged:aMethodChange
    "a method as changed. The receiver must be responsible for all changes to the image
    so if it is not. make sure it does now!!"
    |aMethodName aClassName aMethod |
    aMethodName := aMethodChange selector.
    aClassName := aMethodChange className asSymbol.
    aMethod := (Smalltalk classNamed:aClassName) compiledMethodAt:aMethodName.

    self addedMethod:aMethod.
    self changed:#methodChanged: with:aMethodChange
!

methodRemoveChange:aMethodRemoveChange 

    self removedMethodNamed:aMethodRemoveChange selector forClassNamed:aMethodRemoveChange className.
    self changed:#methodRemoveChange: with:aMethodRemoveChange
! !

!DefaultPackage methodsFor:'queries'!

isDependentOnClassChange:classChange
    "checks to see if the receiver is affected by the change. returns a boolean
    "
    ^ classChange changeClass package == name
"/    ^ (super isDependentOnClassChange:classChange) not
!

isDependentOnClassDefinitionChange:aClassDefinitionChange 
    ^ aClassDefinitionChange changeClass package == name "and:[
        (super isDependentOnClassDefinitionChange:aClassDefinitionChange) not
    ]                                                      "

!

isDependentOnClassInstVarDefinitionChange:aClassInstVarDefinitionChange 
    ^ aClassInstVarDefinitionChange changeClass package == name

"/    ^ (super isDependentOnClassInstVarDefinitionChange:aClassInstVarDefinitionChange) not
!

isDependentOnClassRemoveChange:aClassRemoveChange
    | classBeingRemoved |
    classBeingRemoved := ClassRemoveChange::ClassBeingRemovedQuery query.
    ^ classBeingRemoved package == name
    
"/    ^ (super isDependentOnClassRemoveChange:aClassRemoveChange)
!

isDependentOnClassRenameChange:classChange

    ^ classChange changeClass package == name
"/    ^ (super isDependentOnClassRenameChange:classChange) not
!

isDependentOnMethodCategoryChange:aMethodRemoveChange 
    ^ (super isDependentOnMethodCategoryChange:aMethodRemoveChange)
!

isDependentOnMethodCategoryRenameChange:aMethodRemoveChange 
    ^ (super isDependentOnMethodCategoryRenameChange:aMethodRemoveChange)
!

isDependentOnMethodChange:aMethodChange
    ^ (super isDependentOnMethodChange:aMethodChange) not
!

isDependentOnMethodRemoveChange:aMethodRemoveChange 
    ^ (super isDependentOnMethodRemoveChange:aMethodRemoveChange) not
! !

!DefaultPackage class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libbasic3/packages/DefaultPackage.st,v 1.1 2003-04-09 11:22:03 james Exp $'
! !