allow suppress of dialog when filed-in classes violate conventions
authorClaus Gittinger <cg@exept.de>
Wed, 03 Feb 1999 11:55:06 +0100
changeset 3965 cef66fdfff9e
parent 3964 a3129832fe16
child 3966 1013f1476687
allow suppress of dialog when filed-in classes violate conventions
ClassDescr.st
ClassDescription.st
Metaclass.st
--- 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!