--- a/ClassDescr.st Tue Feb 02 22:40:51 1999 +0100
+++ b/ClassDescr.st Wed Feb 03 11:55:06 1999 +0100
@@ -20,7 +20,8 @@
UsedNameSpaceQuerySignal CreateNameSpaceQuerySignal
FileOutNameSpaceQuerySignal
ChangeDefaultApplicationNotificationSignal
- DefaultApplicationQuerySignal'
+ DefaultApplicationQuerySignal
+ ClassConventionViolationConfirmationQuerySignal'
poolDictionaries:''
category:'Kernel-Classes'
!
@@ -125,63 +126,67 @@
TryLocalSourceFirst := false.
FileOutErrorSignal isNil ifTrue:[
- FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
- FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
- FileOutErrorSignal notifierString:'error during fileOut'.
-
- MethodRedefinitionSignal := QuerySignal new.
- MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
- MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
- MethodRedefinitionSignal defaultAnswer:#keep.
-
- ClassRedefinitionSignal := QuerySignal new.
- ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
- ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
- ClassRedefinitionSignal defaultAnswer:#keep.
-
- UpdateChangeFileQuerySignal := QuerySignal new.
- UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
- UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
- UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
-
- NameSpaceQuerySignal := QuerySignal new.
- NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
- NameSpaceQuerySignal notifierString:'asking for nameSpace'.
- NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
-
- UsedNameSpaceQuerySignal := QuerySignal new.
- UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
- UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
-
- CreateNameSpaceQuerySignal := QuerySignal new.
- CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
- CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
- CreateNameSpaceQuerySignal defaultAnswer:false.
-
- PackageQuerySignal := QuerySignal new.
- PackageQuerySignal nameClass:self message:#packageQuerySignal.
- PackageQuerySignal notifierString:'asking for package'.
- PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil
- ifTrue:[
- 'no package'
- ] ifFalse:[
- Project currentPackageName
- ])].
-
- FileOutNameSpaceQuerySignal := QuerySignal new.
- FileOutNameSpaceQuerySignal defaultAnswer:false.
-
- ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
+ FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
+ FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
+ FileOutErrorSignal notifierString:'error during fileOut'.
+
+ MethodRedefinitionSignal := QuerySignal new.
+ MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
+ MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
+ MethodRedefinitionSignal defaultAnswer:#keep.
+
+ ClassRedefinitionSignal := QuerySignal new.
+ ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
+ ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
+ ClassRedefinitionSignal defaultAnswer:#keep.
+
+ UpdateChangeFileQuerySignal := QuerySignal new.
+ UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
+ UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
+ UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
+
+ NameSpaceQuerySignal := QuerySignal new.
+ NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
+ NameSpaceQuerySignal notifierString:'asking for nameSpace'.
+ NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
+
+ UsedNameSpaceQuerySignal := QuerySignal new.
+ UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
+ UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
+
+ CreateNameSpaceQuerySignal := QuerySignal new.
+ CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
+ CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
+ CreateNameSpaceQuerySignal defaultAnswer:false.
+
+ ClassConventionViolationConfirmationQuerySignal := QuerySignal new.
+ ClassConventionViolationConfirmationQuerySignal nameClass:self message:#classConventionViolationConfirmationQuerySignal.
+ ClassConventionViolationConfirmationQuerySignal notifierString:'asking for class convention'.
+
+ PackageQuerySignal := QuerySignal new.
+ PackageQuerySignal nameClass:self message:#packageQuerySignal.
+ PackageQuerySignal notifierString:'asking for package'.
+ PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil
+ ifTrue:[
+ 'no package'
+ ] ifFalse:[
+ Project currentPackageName
+ ])].
+
+ FileOutNameSpaceQuerySignal := QuerySignal new.
+ FileOutNameSpaceQuerySignal defaultAnswer:false.
+
+ ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
].
DefaultApplicationQuerySignal isNil ifTrue:[
- DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
- DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
- DefaultApplicationQuerySignal notifierString:'query for default application'.
-
- ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
- ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
- ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
+ DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
+ DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
+ DefaultApplicationQuerySignal notifierString:'query for default application'.
+
+ ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
+ ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
+ ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
].
"
@@ -189,7 +194,7 @@
"
"Created: / 2.4.1997 / 17:27:40 / stefan"
- "Modified: / 17.6.1998 / 10:12:31 / cg"
+ "Modified: / 3.2.1999 / 11:23:08 / cg"
! !
!ClassDescription class methodsFor:'Signal constants'!
@@ -209,6 +214,17 @@
"Created: / 15.6.1998 / 18:29:57 / cg"
!
+classConventionViolationConfirmationQuerySignal
+ "return the query signal raised when a class is about to be installed
+ (or changed) which violates conventions (such as upper case instVars).
+ This is raised in subclass creation and can be handled to suppress
+ dialog boxes popping up during fileIn"
+
+ ^ ClassConventionViolationConfirmationQuerySignal
+
+ "Created: / 3.2.1999 / 11:22:07 / cg"
+!
+
classRedefinitionSignal
"return the signal raised when a class is about to be redefined
differently from an existing class and the packages are not
@@ -2543,6 +2559,32 @@
"Modified: 6.11.1996 / 22:48:26 / cg"
!
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+ "create a new class as a subclass of an existing class (the receiver)
+ in which the subclass has indexable unsigned long-long-sized nonpointer variables"
+
+ self isVariable ifTrue:[
+ self isLongLongs ifFalse:[
+ ^ self error:
+ 'cannot make a variable long-long subclass of a variable non-long-long class'
+ ].
+ ].
+
+ ^ self class
+ name:nameSymbol
+ inEnvironment:(Class nameSpaceQuerySignal raise)
+ subclassOf:self
+ instanceVariableNames:instVarNameString
+ variable:#longLong
+ words:false
+ pointers:false
+ classVariableNames:classVarString
+ poolDictionaries:pool
+ category:cat
+ comment:nil
+ changed:true
+!
+
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable long-sized nonpointer variables"
@@ -2572,14 +2614,14 @@
"Modified: 6.11.1996 / 22:48:29 / cg"
!
-variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable unsigned long-long-sized nonpointer variables"
+ in which the subclass has indexable signed long-long-sized nonpointer variables"
self isVariable ifTrue:[
- self isLongLongs ifFalse:[
+ self isSignedLongLongs ifFalse:[
^ self error:
- 'cannot make a variable long-long subclass of a variable non-long-long class'
+ 'cannot make a variable signed long-long subclass of a variable non-long-long class'
].
].
@@ -2588,7 +2630,7 @@
inEnvironment:(Class nameSpaceQuerySignal raise)
subclassOf:self
instanceVariableNames:instVarNameString
- variable:#longLong
+ variable:#signedLongLong
words:false
pointers:false
classVariableNames:classVarString
@@ -2627,32 +2669,6 @@
"Modified: 6.11.1996 / 22:48:32 / cg"
!
-variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
- "create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable signed long-long-sized nonpointer variables"
-
- self isVariable ifTrue:[
- self isSignedLongLongs ifFalse:[
- ^ self error:
- 'cannot make a variable signed long-long subclass of a variable non-long-long class'
- ].
- ].
-
- ^ self class
- name:nameSymbol
- inEnvironment:(Class nameSpaceQuerySignal raise)
- subclassOf:self
- instanceVariableNames:instVarNameString
- variable:#signedLongLong
- words:false
- pointers:false
- classVariableNames:classVarString
- poolDictionaries:pool
- category:cat
- comment:nil
- changed:true
-!
-
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable word-sized signed nonpointer variables"
@@ -2949,6 +2965,39 @@
"Modified: 14.10.1996 / 17:39:50 / cg"
!
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
+ "create a new class as a subclass of an existing class (the receiver)
+ in which the subclass has indexable longlong-sized nonpointer variables"
+
+ |newClass|
+
+ self isVariable ifTrue:[
+ self isLongLongs ifFalse:[
+ ^ self error:
+ 'cannot make a variable longlong subclass of a variable non-longlong class'
+ ].
+ ].
+
+ newClass := self class
+ name:nameSymbol
+ inEnvironment:aClass
+ subclassOf:self
+ instanceVariableNames:instVarNameString
+ variable:#longLong
+ words:false
+ pointers:false
+ classVariableNames:classVarString
+ poolDictionaries:pool
+ category:(aClass category)
+ comment:nil
+ changed:true.
+
+ ^ newClass
+
+ "Created: 11.10.1996 / 16:32:48 / cg"
+ "Modified: 14.10.1996 / 17:39:54 / cg"
+!
+
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable long-sized nonpointer variables"
@@ -2982,16 +3031,16 @@
"Modified: 14.10.1996 / 17:39:54 / cg"
!
-variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable longlong-sized nonpointer variables"
+ in which the subclass has indexable signed longlong-sized nonpointer variables"
|newClass|
self isVariable ifTrue:[
- self isLongLongs ifFalse:[
+ self isSignedLongLongs ifFalse:[
^ self error:
- 'cannot make a variable longlong subclass of a variable non-longlong class'
+ 'cannot make a variable signed longlong subclass of a variable non-longlong class'
].
].
@@ -3000,7 +3049,7 @@
inEnvironment:aClass
subclassOf:self
instanceVariableNames:instVarNameString
- variable:#longLong
+ variable:#signedLongLong
words:false
pointers:false
classVariableNames:classVarString
@@ -3011,8 +3060,8 @@
^ newClass
- "Created: 11.10.1996 / 16:32:48 / cg"
- "Modified: 14.10.1996 / 17:39:54 / cg"
+ "Created: 11.10.1996 / 16:46:30 / cg"
+ "Modified: 14.10.1996 / 17:39:58 / cg"
!
variableSignedLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
@@ -3048,39 +3097,6 @@
"Modified: 14.10.1996 / 17:39:58 / cg"
!
-variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
- "create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable signed longlong-sized nonpointer variables"
-
- |newClass|
-
- self isVariable ifTrue:[
- self isSignedLongLongs ifFalse:[
- ^ self error:
- 'cannot make a variable signed longlong subclass of a variable non-longlong class'
- ].
- ].
-
- newClass := self class
- name:nameSymbol
- inEnvironment:aClass
- subclassOf:self
- instanceVariableNames:instVarNameString
- variable:#signedLongLong
- words:false
- pointers:false
- classVariableNames:classVarString
- poolDictionaries:pool
- category:(aClass category)
- comment:nil
- changed:true.
-
- ^ newClass
-
- "Created: 11.10.1996 / 16:46:30 / cg"
- "Modified: 14.10.1996 / 17:39:58 / cg"
-!
-
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable word-sized signed nonpointer variables"
@@ -3183,6 +3199,6 @@
!ClassDescription class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/ClassDescr.st,v 1.76 1998-11-09 21:07:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/ClassDescr.st,v 1.77 1999-02-03 10:54:40 cg Exp $'
! !
ClassDescription initialize!
--- a/ClassDescription.st Tue Feb 02 22:40:51 1999 +0100
+++ b/ClassDescription.st Wed Feb 03 11:55:06 1999 +0100
@@ -20,7 +20,8 @@
UsedNameSpaceQuerySignal CreateNameSpaceQuerySignal
FileOutNameSpaceQuerySignal
ChangeDefaultApplicationNotificationSignal
- DefaultApplicationQuerySignal'
+ DefaultApplicationQuerySignal
+ ClassConventionViolationConfirmationQuerySignal'
poolDictionaries:''
category:'Kernel-Classes'
!
@@ -125,63 +126,67 @@
TryLocalSourceFirst := false.
FileOutErrorSignal isNil ifTrue:[
- FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
- FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
- FileOutErrorSignal notifierString:'error during fileOut'.
-
- MethodRedefinitionSignal := QuerySignal new.
- MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
- MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
- MethodRedefinitionSignal defaultAnswer:#keep.
-
- ClassRedefinitionSignal := QuerySignal new.
- ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
- ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
- ClassRedefinitionSignal defaultAnswer:#keep.
-
- UpdateChangeFileQuerySignal := QuerySignal new.
- UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
- UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
- UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
-
- NameSpaceQuerySignal := QuerySignal new.
- NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
- NameSpaceQuerySignal notifierString:'asking for nameSpace'.
- NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
-
- UsedNameSpaceQuerySignal := QuerySignal new.
- UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
- UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
-
- CreateNameSpaceQuerySignal := QuerySignal new.
- CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
- CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
- CreateNameSpaceQuerySignal defaultAnswer:false.
-
- PackageQuerySignal := QuerySignal new.
- PackageQuerySignal nameClass:self message:#packageQuerySignal.
- PackageQuerySignal notifierString:'asking for package'.
- PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil
- ifTrue:[
- 'no package'
- ] ifFalse:[
- Project currentPackageName
- ])].
-
- FileOutNameSpaceQuerySignal := QuerySignal new.
- FileOutNameSpaceQuerySignal defaultAnswer:false.
-
- ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
+ FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
+ FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
+ FileOutErrorSignal notifierString:'error during fileOut'.
+
+ MethodRedefinitionSignal := QuerySignal new.
+ MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
+ MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
+ MethodRedefinitionSignal defaultAnswer:#keep.
+
+ ClassRedefinitionSignal := QuerySignal new.
+ ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
+ ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
+ ClassRedefinitionSignal defaultAnswer:#keep.
+
+ UpdateChangeFileQuerySignal := QuerySignal new.
+ UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
+ UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
+ UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
+
+ NameSpaceQuerySignal := QuerySignal new.
+ NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
+ NameSpaceQuerySignal notifierString:'asking for nameSpace'.
+ NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
+
+ UsedNameSpaceQuerySignal := QuerySignal new.
+ UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
+ UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
+
+ CreateNameSpaceQuerySignal := QuerySignal new.
+ CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
+ CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
+ CreateNameSpaceQuerySignal defaultAnswer:false.
+
+ ClassConventionViolationConfirmationQuerySignal := QuerySignal new.
+ ClassConventionViolationConfirmationQuerySignal nameClass:self message:#classConventionViolationConfirmationQuerySignal.
+ ClassConventionViolationConfirmationQuerySignal notifierString:'asking for class convention'.
+
+ PackageQuerySignal := QuerySignal new.
+ PackageQuerySignal nameClass:self message:#packageQuerySignal.
+ PackageQuerySignal notifierString:'asking for package'.
+ PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil
+ ifTrue:[
+ 'no package'
+ ] ifFalse:[
+ Project currentPackageName
+ ])].
+
+ FileOutNameSpaceQuerySignal := QuerySignal new.
+ FileOutNameSpaceQuerySignal defaultAnswer:false.
+
+ ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
].
DefaultApplicationQuerySignal isNil ifTrue:[
- DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
- DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
- DefaultApplicationQuerySignal notifierString:'query for default application'.
-
- ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
- ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
- ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
+ DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
+ DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
+ DefaultApplicationQuerySignal notifierString:'query for default application'.
+
+ ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
+ ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
+ ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
].
"
@@ -189,7 +194,7 @@
"
"Created: / 2.4.1997 / 17:27:40 / stefan"
- "Modified: / 17.6.1998 / 10:12:31 / cg"
+ "Modified: / 3.2.1999 / 11:23:08 / cg"
! !
!ClassDescription class methodsFor:'Signal constants'!
@@ -209,6 +214,17 @@
"Created: / 15.6.1998 / 18:29:57 / cg"
!
+classConventionViolationConfirmationQuerySignal
+ "return the query signal raised when a class is about to be installed
+ (or changed) which violates conventions (such as upper case instVars).
+ This is raised in subclass creation and can be handled to suppress
+ dialog boxes popping up during fileIn"
+
+ ^ ClassConventionViolationConfirmationQuerySignal
+
+ "Created: / 3.2.1999 / 11:22:07 / cg"
+!
+
classRedefinitionSignal
"return the signal raised when a class is about to be redefined
differently from an existing class and the packages are not
@@ -2543,6 +2559,32 @@
"Modified: 6.11.1996 / 22:48:26 / cg"
!
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+ "create a new class as a subclass of an existing class (the receiver)
+ in which the subclass has indexable unsigned long-long-sized nonpointer variables"
+
+ self isVariable ifTrue:[
+ self isLongLongs ifFalse:[
+ ^ self error:
+ 'cannot make a variable long-long subclass of a variable non-long-long class'
+ ].
+ ].
+
+ ^ self class
+ name:nameSymbol
+ inEnvironment:(Class nameSpaceQuerySignal raise)
+ subclassOf:self
+ instanceVariableNames:instVarNameString
+ variable:#longLong
+ words:false
+ pointers:false
+ classVariableNames:classVarString
+ poolDictionaries:pool
+ category:cat
+ comment:nil
+ changed:true
+!
+
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable long-sized nonpointer variables"
@@ -2572,14 +2614,14 @@
"Modified: 6.11.1996 / 22:48:29 / cg"
!
-variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable unsigned long-long-sized nonpointer variables"
+ in which the subclass has indexable signed long-long-sized nonpointer variables"
self isVariable ifTrue:[
- self isLongLongs ifFalse:[
+ self isSignedLongLongs ifFalse:[
^ self error:
- 'cannot make a variable long-long subclass of a variable non-long-long class'
+ 'cannot make a variable signed long-long subclass of a variable non-long-long class'
].
].
@@ -2588,7 +2630,7 @@
inEnvironment:(Class nameSpaceQuerySignal raise)
subclassOf:self
instanceVariableNames:instVarNameString
- variable:#longLong
+ variable:#signedLongLong
words:false
pointers:false
classVariableNames:classVarString
@@ -2627,32 +2669,6 @@
"Modified: 6.11.1996 / 22:48:32 / cg"
!
-variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
- "create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable signed long-long-sized nonpointer variables"
-
- self isVariable ifTrue:[
- self isSignedLongLongs ifFalse:[
- ^ self error:
- 'cannot make a variable signed long-long subclass of a variable non-long-long class'
- ].
- ].
-
- ^ self class
- name:nameSymbol
- inEnvironment:(Class nameSpaceQuerySignal raise)
- subclassOf:self
- instanceVariableNames:instVarNameString
- variable:#signedLongLong
- words:false
- pointers:false
- classVariableNames:classVarString
- poolDictionaries:pool
- category:cat
- comment:nil
- changed:true
-!
-
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable word-sized signed nonpointer variables"
@@ -2949,6 +2965,39 @@
"Modified: 14.10.1996 / 17:39:50 / cg"
!
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
+ "create a new class as a subclass of an existing class (the receiver)
+ in which the subclass has indexable longlong-sized nonpointer variables"
+
+ |newClass|
+
+ self isVariable ifTrue:[
+ self isLongLongs ifFalse:[
+ ^ self error:
+ 'cannot make a variable longlong subclass of a variable non-longlong class'
+ ].
+ ].
+
+ newClass := self class
+ name:nameSymbol
+ inEnvironment:aClass
+ subclassOf:self
+ instanceVariableNames:instVarNameString
+ variable:#longLong
+ words:false
+ pointers:false
+ classVariableNames:classVarString
+ poolDictionaries:pool
+ category:(aClass category)
+ comment:nil
+ changed:true.
+
+ ^ newClass
+
+ "Created: 11.10.1996 / 16:32:48 / cg"
+ "Modified: 14.10.1996 / 17:39:54 / cg"
+!
+
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable long-sized nonpointer variables"
@@ -2982,16 +3031,16 @@
"Modified: 14.10.1996 / 17:39:54 / cg"
!
-variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable longlong-sized nonpointer variables"
+ in which the subclass has indexable signed longlong-sized nonpointer variables"
|newClass|
self isVariable ifTrue:[
- self isLongLongs ifFalse:[
+ self isSignedLongLongs ifFalse:[
^ self error:
- 'cannot make a variable longlong subclass of a variable non-longlong class'
+ 'cannot make a variable signed longlong subclass of a variable non-longlong class'
].
].
@@ -3000,7 +3049,7 @@
inEnvironment:aClass
subclassOf:self
instanceVariableNames:instVarNameString
- variable:#longLong
+ variable:#signedLongLong
words:false
pointers:false
classVariableNames:classVarString
@@ -3011,8 +3060,8 @@
^ newClass
- "Created: 11.10.1996 / 16:32:48 / cg"
- "Modified: 14.10.1996 / 17:39:54 / cg"
+ "Created: 11.10.1996 / 16:46:30 / cg"
+ "Modified: 14.10.1996 / 17:39:58 / cg"
!
variableSignedLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
@@ -3048,39 +3097,6 @@
"Modified: 14.10.1996 / 17:39:58 / cg"
!
-variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
- "create a new class as a subclass of an existing class (the receiver)
- in which the subclass has indexable signed longlong-sized nonpointer variables"
-
- |newClass|
-
- self isVariable ifTrue:[
- self isSignedLongLongs ifFalse:[
- ^ self error:
- 'cannot make a variable signed longlong subclass of a variable non-longlong class'
- ].
- ].
-
- newClass := self class
- name:nameSymbol
- inEnvironment:aClass
- subclassOf:self
- instanceVariableNames:instVarNameString
- variable:#signedLongLong
- words:false
- pointers:false
- classVariableNames:classVarString
- poolDictionaries:pool
- category:(aClass category)
- comment:nil
- changed:true.
-
- ^ newClass
-
- "Created: 11.10.1996 / 16:46:30 / cg"
- "Modified: 14.10.1996 / 17:39:58 / cg"
-!
-
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
"create a new class as a subclass of an existing class (the receiver)
in which the subclass has indexable word-sized signed nonpointer variables"
@@ -3183,6 +3199,6 @@
!ClassDescription class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.76 1998-11-09 21:07:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.77 1999-02-03 10:54:40 cg Exp $'
! !
ClassDescription initialize!
--- a/Metaclass.st Tue Feb 02 22:40:51 1999 +0100
+++ b/Metaclass.st Wed Feb 03 11:55:06 1999 +0100
@@ -1480,10 +1480,10 @@
(but thats how its defined in the book - maybe I will change it anyway).
"
- |names idx what doChecks|
+ |names idx what doChecks answ|
doChecks := ConfirmationQuerySignal raise.
- doChecks ifFalse:[^ true].
+ doChecks == false ifTrue:[^ true].
"let user confirm, if the classname is no good"
className first isUppercase ifFalse:[
@@ -1493,6 +1493,9 @@
what := 'class'
].
+ answ := Class classConventionViolationConfirmationQuerySignal raise.
+ answ notNil ifTrue:[^ answ].
+
(self confirm:(what , ' name ''' , className ,
''' should start with an uppercase letter
(by convention only)
@@ -1507,6 +1510,9 @@
"let user confirm, if any instvarname is no good"
(idx := names findFirst:[:word | word first isUppercase]) ~~ 0 ifTrue:[
+ answ := Class classConventionViolationConfirmationQuerySignal raise.
+ answ notNil ifTrue:[^ answ].
+
(self confirm:className , ': instance variable named ''' , (names at:idx) asText allBold , '''
should start with a lowercase letter (by convention only).
@@ -1520,6 +1526,9 @@
"let user confirm, if any classvarname is no good"
(idx := names findFirst:[:word | word first isLowercase]) ~~ 0 ifTrue:[
+ answ := Class classConventionViolationConfirmationQuerySignal raise.
+ answ notNil ifTrue:[^ answ].
+
(self confirm:className , ': class variable named ''' , (names at:idx) asText allBold , '''
should start with an uppercase letter (by convention only).
@@ -1531,8 +1540,8 @@
^ true
- "Created: 15.10.1996 / 11:56:38 / cg"
- "Modified: 31.7.1997 / 21:56:23 / cg"
+ "Created: / 15.10.1996 / 11:56:38 / cg"
+ "Modified: / 3.2.1999 / 11:24:52 / cg"
!
checkForAliasesOf:oldClass with:newClass
@@ -1975,6 +1984,6 @@
!Metaclass class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.133 1998-08-29 15:01:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.134 1999-02-03 10:55:06 cg Exp $'
! !
Metaclass initialize!