ClassDescription.st
changeset 14702 8311953750d6
parent 14627 c2fe9f27bd12
child 14706 a9632d4a6693
equal deleted inserted replaced
14701:50c3faf6eb60 14702:8311953750d6
   818     "for ST80 compatibility but without functionality"
   818     "for ST80 compatibility but without functionality"
   819 
   819 
   820     "Created: / 28.3.1998 / 21:21:52 / cg"
   820     "Created: / 28.3.1998 / 21:21:52 / cg"
   821 ! !
   821 ! !
   822 
   822 
   823 
       
   824 !ClassDescription methodsFor:'Compatibility-V''Age'!
   823 !ClassDescription methodsFor:'Compatibility-V''Age'!
   825 
   824 
   826 categoriesFor:aSelector are:listOfCategories
   825 categoriesFor:aSelector are:listOfCategories
   827     "to allow fileIn of V'Age code.
   826     "to allow fileIn of V'Age code.
   828      Set the category of the method which is installed under aSelector.
   827      Set the category of the method which is installed under aSelector.
  1179             ]
  1178             ]
  1180         ]
  1179         ]
  1181     ].
  1180     ].
  1182 
  1181 
  1183     (super addSelector:newSelector withMethod:newMethod) ifTrue:[
  1182     (super addSelector:newSelector withMethod:newMethod) ifTrue:[
  1184         self addChangeRecordForMethod:newMethod fromOld:oldMethod.
  1183         "/ only write change records for changes to non-anonymous classes
       
  1184         self containingNameSpace notNil ifTrue:[
       
  1185             self addChangeRecordForMethod:newMethod fromOld:oldMethod.
       
  1186         ]
  1185     ].
  1187     ].
  1186 
  1188 
  1187     "Modified: / 09-09-1996 / 22:39:32 / stefan"
  1189     "Modified: / 09-09-1996 / 22:39:32 / stefan"
  1188     "Created: / 04-06-1997 / 14:47:10 / cg"
  1190     "Created: / 04-06-1997 / 14:47:10 / cg"
  1189     "Modified: / 17-08-2006 / 13:54:00 / cg"
  1191     "Modified: / 17-08-2006 / 13:54:00 / cg"
  1217             ]
  1219             ]
  1218         ]
  1220         ]
  1219     ].
  1221     ].
  1220 
  1222 
  1221     (super removeSelector:aSelector) ifTrue:[
  1223     (super removeSelector:aSelector) ifTrue:[
  1222         self addChangeRecordForRemoveSelector:aSelector fromOld:oldMethod.
  1224         "/ only write change records for changes to non-anonymous classes
  1223         "/
  1225         self containingNameSpace notNil ifTrue:[
  1224         "/ also notify a change of mySelf;
  1226             self addChangeRecordForRemoveSelector:aSelector fromOld:oldMethod.
  1225         "/
  1227             "/
  1226         self changed:#methodDictionary with:aSelector.
  1228             "/ also notify a change of mySelf;
  1227 
  1229             "/
  1228         "/
  1230             self changed:#methodDictionary with:aSelector.
  1229         "/ also notify a change of Smalltalk;
  1231 
  1230         "/ this allows a dependent of Smalltalk to watch all class
  1232             "/
  1231         "/ changes (no need for observing all classes)
  1233             "/ also notify a change of Smalltalk;
  1232         "/ - this allows for watchers to find out if its a new method or a method-change
  1234             "/ this allows a dependent of Smalltalk to watch all class
  1233         "/
  1235             "/ changes (no need for observing all classes)
  1234         MethodRemoveChangeNotificationParameter notNil ifTrue:[
  1236             "/ - this allows for watchers to find out if its a new method or a method-change
  1235             Smalltalk changed:#methodInClassRemoved with:(MethodRemoveChangeNotificationParameter changeClass:self changeSelector:aSelector).
  1237             "/
       
  1238             MethodRemoveChangeNotificationParameter notNil ifTrue:[
       
  1239                 Smalltalk changed:#methodInClassRemoved with:(MethodRemoveChangeNotificationParameter changeClass:self changeSelector:aSelector).
       
  1240             ]
  1236         ]
  1241         ]
  1237     ]
  1242     ]
  1238 
  1243 
  1239     "Modified: 8.1.1997 / 23:03:49 / cg"
  1244     "Modified: 8.1.1997 / 23:03:49 / cg"
  1240     "Created: 2.4.1997 / 00:59:29 / stefan"
  1245     "Created: 2.4.1997 / 00:59:29 / stefan"
  1283 ! !
  1288 ! !
  1284 
  1289 
  1285 !ClassDescription methodsFor:'changes management'!
  1290 !ClassDescription methodsFor:'changes management'!
  1286 
  1291 
  1287 addChangeRecordForMethod:aMethod
  1292 addChangeRecordForMethod:aMethod
       
  1293     <resource: #obsolete>
  1288     "{ Pragma: +optSpace }"
  1294     "{ Pragma: +optSpace }"
  1289 
  1295 
       
  1296     self obsoleteMethodWarning:'use addChangeRecordForMethod:fromOld:'.
       
  1297 
  1290     "add a method-change-record to the changes file and to the current changeSet"
  1298     "add a method-change-record to the changes file and to the current changeSet"
  1291 
  1299 
  1292     UpdateChangeFileQuerySignal query ifTrue:[
  1300     UpdateChangeFileQuerySignal query ifTrue:[
  1293 	self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
  1301         self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
  1294     ].
  1302     ].
  1295 
  1303 
  1296     "this test allows a smalltalk without Projects/ChangeSets"
  1304     "this test allows a smalltalk without Projects/ChangeSets"
  1297     Project notNil ifTrue:[
  1305     Project notNil ifTrue:[
  1298 	UpdateChangeListQuerySignal query ifTrue:[
  1306         UpdateChangeListQuerySignal query ifTrue:[
  1299 	    Project addMethodChange:aMethod in:self
  1307             Project addMethodChange:aMethod in:self
  1300 	]
  1308         ]
  1301     ]
  1309     ]
  1302 
  1310 
  1303     "Modified: / 20.1.1997 / 12:36:02 / cg"
  1311     "Modified: / 20.1.1997 / 12:36:02 / cg"
  1304     "Created: / 2.4.1997 / 01:02:16 / stefan"
  1312     "Created: / 2.4.1997 / 01:02:16 / stefan"
  1305     "Modified: / 18.3.1999 / 18:16:41 / stefan"
  1313     "Modified: / 18.3.1999 / 18:16:41 / stefan"
  4227 ! !
  4235 ! !
  4228 
  4236 
  4229 !ClassDescription class methodsFor:'documentation'!
  4237 !ClassDescription class methodsFor:'documentation'!
  4230 
  4238 
  4231 version
  4239 version
  4232     ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.230 2013-01-03 09:20:11 cg Exp $'
  4240     ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.231 2013-01-24 15:50:38 cg Exp $'
  4233 !
  4241 !
  4234 
  4242 
  4235 version_CVS
  4243 version_CVS
  4236     ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.230 2013-01-03 09:20:11 cg Exp $'
  4244     ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.231 2013-01-24 15:50:38 cg Exp $'
  4237 ! !
  4245 ! !
  4238 
  4246 
  4239 
  4247 
  4240 ClassDescription initialize!
  4248 ClassDescription initialize!
  4241 ClassDescription::MethodRedefinitionNotification initialize!
  4249 ClassDescription::MethodRedefinitionNotification initialize!