ClassDescription.st
changeset 3406 de3426236e28
parent 3344 088c84bfad31
child 3520 93d11fe72baf
--- a/ClassDescription.st	Fri Apr 24 20:48:15 1998 +0200
+++ b/ClassDescription.st	Sat Apr 25 14:29:57 1998 +0200
@@ -126,9 +126,10 @@
         FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
         FileOutErrorSignal notifierString:'error during fileOut'.
 
-        MethodRedefinitionSignal := ErrorSignal newSignalMayProceed:true.
+        MethodRedefinitionSignal := QuerySignal new.
         MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
         MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
+        MethodRedefinitionSignal defaultAnswer:#keep.
 
         UpdateChangeFileQuerySignal := QuerySignal new.
         UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
@@ -203,6 +204,99 @@
 
     "Modified: 5.11.1996 / 20:08:38 / cg"
     "Created: 2.4.1997 / 17:28:41 / stefan"
+!
+
+methodRedefinitionSignal
+    "return the signal raised when a method is about to be installed
+     which redefines an existing method and the methods packages are not
+     equal. This helps when filing in alien code, to prevent existing
+     methods to be overwritten or redefined by incompatible methods"
+
+    ^ MethodRedefinitionSignal
+!
+
+nameSpaceQuerySignal
+    "return the signal used as an upQuery for the current nameSpace.
+     Will be used when filing in code"
+
+    ^ NameSpaceQuerySignal
+
+    "
+     Transcript showCR:Class nameSpaceQuerySignal raise
+    "
+
+    "Modified: 5.11.1996 / 20:08:38 / cg"
+!
+
+packageQuerySignal
+    "return the signal used as an upQuery for the current packages name.
+     Will be used when filing in code"
+
+    ^ PackageQuerySignal
+
+    "
+     Transcript showCR:Class packageQuerySignal raise
+    "
+
+    "Created: 5.11.1996 / 20:07:22 / cg"
+    "Modified: 5.11.1996 / 20:08:35 / cg"
+!
+
+updateChangeFileQuerySignal
+    "return the signal used as an upQuery if the changeFile should be updated.
+     If unhandled, the value of UpdatingChanges is returned by the signals
+     static handler."
+
+    ^ UpdateChangeFileQuerySignal
+
+    "
+     Transcript showCR:Class updateChangeFileQuerySignal raise
+    "
+
+    "Modified: 5.11.1996 / 20:08:44 / cg"
+!
+
+usedNameSpaceQuerySignal
+    "return the signal used as an upQuery for the used nameSpace.
+     Will be used when filing in code"
+
+    ^ UsedNameSpaceQuerySignal
+
+    "Created: 19.12.1996 / 23:57:27 / cg"
+! !
+
+!ClassDescription class methodsFor:'accessing - flags'!
+
+catchMethodRedefinitions
+    "return the redefinition catching flag."
+
+    ^ CatchMethodRedefinitions
+!
+
+catchMethodRedefinitions:aBoolean
+    "turn on/off redefinition catching. Return the prior value of the flag."
+
+    |prev|
+
+    prev := CatchMethodRedefinitions.
+    CatchMethodRedefinitions := aBoolean.
+    ^ prev
+!
+
+lockChangesFile
+    "return true, if the change file is locked during update"
+
+    ^ LockChangesFile
+!
+
+lockChangesFile:aBoolean
+    "turn on/off change-file-locking. Return the previous value of the flag."
+
+    |prev|
+
+    prev := LockChangesFile.
+    LockChangesFile := aBoolean.
+    ^ prev
 ! !
 
 !ClassDescription class methodsFor:'enumeration '!
@@ -2690,6 +2784,6 @@
 !ClassDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.66 1998-03-30 13:52:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.67 1998-04-25 12:29:57 cg Exp $'
 ! !
 ClassDescription initialize!