Initial revision
authorclaus
Thu, 02 Jun 1994 21:18:43 +0200
changeset 90 94259bf1f459
parent 89 7be0b86ef80f
child 91 b3971c7dc731
Initial revision
Obsolete.st
ObsoleteObject.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Obsolete.st	Thu Jun 02 21:18:43 1994 +0200
@@ -0,0 +1,83 @@
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+
+Object subclass:#ObsoleteObject
+       instanceVariableNames:''
+       classVariableNames:''
+       poolDictionaries:''
+       category:'System-Support'
+!
+
+ObsoleteObject comment:'
+COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+'!
+
+!ObsoleteObject class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+version
+"
+$Header: /cvs/stx/stx/libbasic/Attic/Obsolete.st,v 1.1 1994-06-02 19:18:43 claus Exp $
+"
+!
+
+documentation
+"
+    This class is used for error handling during binary object restoration. 
+    Whenever an object whose class has changed (i.e. it was stored with a 
+    different layout/size) is about to be restored, it cannot be made an 
+    instance of the now existing class.
+    In this case, the BinaryInputManager will create a dummy class for the 
+    old (obsolete) object; this dummy class will be a subclass of ObsoleteObject..
+
+    After the creation of the obsolete object, a signal will be raised (in 
+    BinaryInputManager), which can be cought by the application to try some 
+    automatic or semi-automatic object conversion.
+    The signal gets the obsolete object and the new class as parameters.
+
+    ObsoleteObject itself catches all messages, to avoid any use of the restored
+    object.
+"
+! !
+
+!ObsoleteObject class methodsFor:'initialization'!
+
+initialize
+    self setSuperclass:nil
+! !
+
+!ObsoleteObject methodsFor:'message catching'!
+
+doesNotUnderstand: aMessage
+        "the only thing obsolete objects understand is that they dont understand
+         anything."
+
+        ^ Object messageNotUnderstoodSignal
+                 raiseRequestWith:aMessage
+                 errorString:'Message not understood: ' , aMessage selector
+! !
+
+ObsoleteObject initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ObsoleteObject.st	Thu Jun 02 21:18:43 1994 +0200
@@ -0,0 +1,83 @@
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+
+Object subclass:#ObsoleteObject
+       instanceVariableNames:''
+       classVariableNames:''
+       poolDictionaries:''
+       category:'System-Support'
+!
+
+ObsoleteObject comment:'
+COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+'!
+
+!ObsoleteObject class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1994 by Claus Gittinger
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+version
+"
+$Header: /cvs/stx/stx/libbasic/Attic/ObsoleteObject.st,v 1.1 1994-06-02 19:18:43 claus Exp $
+"
+!
+
+documentation
+"
+    This class is used for error handling during binary object restoration. 
+    Whenever an object whose class has changed (i.e. it was stored with a 
+    different layout/size) is about to be restored, it cannot be made an 
+    instance of the now existing class.
+    In this case, the BinaryInputManager will create a dummy class for the 
+    old (obsolete) object; this dummy class will be a subclass of ObsoleteObject..
+
+    After the creation of the obsolete object, a signal will be raised (in 
+    BinaryInputManager), which can be cought by the application to try some 
+    automatic or semi-automatic object conversion.
+    The signal gets the obsolete object and the new class as parameters.
+
+    ObsoleteObject itself catches all messages, to avoid any use of the restored
+    object.
+"
+! !
+
+!ObsoleteObject class methodsFor:'initialization'!
+
+initialize
+    self setSuperclass:nil
+! !
+
+!ObsoleteObject methodsFor:'message catching'!
+
+doesNotUnderstand: aMessage
+        "the only thing obsolete objects understand is that they dont understand
+         anything."
+
+        ^ Object messageNotUnderstoodSignal
+                 raiseRequestWith:aMessage
+                 errorString:'Message not understood: ' , aMessage selector
+! !
+
+ObsoleteObject initialize!