--- a/ClassDefinitionChange.st Mon Jul 19 13:58:02 2004 +0200
+++ b/ClassDefinitionChange.st Thu Aug 12 11:22:13 2004 +0200
@@ -208,12 +208,16 @@
!ClassDefinitionChange methodsFor:'special'!
-installAsAutoloadedClassIfNotPrivate
+installAsAutoloadedClassIfPublicWithFilename:aFilenameString
+ "install the class defined by this change as autoloaded.
+ Skip private classes.
+ Enter class file name as abbreviation"
+
|parseTree sel cat clsName catIdx|
parseTree := Parser parseExpression:self source.
parseTree isMessage ifFalse:[
- self error:'should not happen: bad change source'.
+ self error:'bad change source'.
].
sel := parseTree selector.
@@ -226,17 +230,24 @@
clsName := self className asSymbol.
((Smalltalk includesKey:clsName) not
- or:[ (Smalltalk at:clsName) isBehavior not]) ifTrue:[
- Smalltalk
- installAutoloadedClassNamed:clsName
- category:cat
- package:(package ? Project current package)
- revision:nil
+ or:[(Smalltalk at:clsName) isBehavior not
+ or:[(Smalltalk at:clsName) isLoaded not]]) ifTrue:[
+ |pkg|
+
+ pkg := package ? Project current package.
+ Smalltalk
+ installAutoloadedClassNamed:clsName
+ category:cat
+ package:pkg
+ revision:nil.
+ aFilenameString notNil ifTrue:[
+ Smalltalk setFilename:aFilenameString forClass:clsName package:pkg.
+ ]
]
! !
!ClassDefinitionChange class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ClassDefinitionChange.st,v 1.31 2003-08-26 17:43:37 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ClassDefinitionChange.st,v 1.32 2004-08-12 09:21:49 stefan Exp $'
! !