--- a/Obsolete.st Sun Nov 02 18:46:54 1997 +0100
+++ b/Obsolete.st Sun Nov 02 18:47:04 1997 +0100
@@ -10,8 +10,6 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.1.10 on 20-sep-1997 at 11:57:37 pm' !
-
nil subclass:#ObsoleteObject
instanceVariableNames:''
classVariableNames:'ObsoleteObjectSignal'
@@ -42,16 +40,26 @@
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.
+ old (obsolete) object and make the restored object an instance of it.
+ This dummy class will be a subclass of ObsoleteObject.
+ Thus, the restored obsolete object will (at least) provide the data
+ (i.e. the contents) of the original object - although it will obviously
+ not be able to implement the original protocol.
After the creation of the obsolete object, a signal will be raised (in
- BinaryInputManager), which can be caught by the application to try some
- automatic or semi-automatic object conversion.
- The signal gets the obsolete object and the new class as parameters.
+ BinaryInputManager), which can be caught by the application to provide
+ a replacement class and/or to try some automatic or semi-automatic object
+ conversion.
+ The signal gets the obsolete object and the new class as parameters, so
+ a handler can extract instance values from the obsolete object and construct a
+ replacement object from those.
ObsoleteObject itself catches all messages, to avoid any use of the restored
object (in case conversion failed or the signal was ignored).
+ Read the documentatio on binary object storage for examples & code fragments,
+ on obsolete object handling and object migration.
+
[author:]
Claus Gittinger
@@ -124,7 +132,12 @@
basicInspect
"this method is required to allow inspection of the object"
- ^ Inspector openOn:self
+ ^ (Object compiledMethodAt:#basicInspect)
+ valueWithReceiver:self
+ arguments:nil
+ selector:#basicInspect
+
+ "Modified: / 30.10.1997 / 14:16:45 / cg"
!
basicSize
@@ -193,7 +206,12 @@
inspect
"this method is required to allow inspection of the object"
- ^ Inspector openOn:self
+ ^ (Object compiledMethodAt:#inspect)
+ valueWithReceiver:self
+ arguments:nil
+ selector:#inspect
+
+ "Modified: / 30.10.1997 / 14:16:33 / cg"
!
instVarAt:index
@@ -236,6 +254,6 @@
!ObsoleteObject class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/Obsolete.st,v 1.16 1997-09-20 21:06:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Obsolete.st,v 1.17 1997-11-02 17:47:04 cg Exp $'
! !
ObsoleteObject initialize!
--- a/ObsoleteObject.st Sun Nov 02 18:46:54 1997 +0100
+++ b/ObsoleteObject.st Sun Nov 02 18:47:04 1997 +0100
@@ -10,8 +10,6 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.1.10 on 20-sep-1997 at 11:57:37 pm' !
-
nil subclass:#ObsoleteObject
instanceVariableNames:''
classVariableNames:'ObsoleteObjectSignal'
@@ -42,16 +40,26 @@
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.
+ old (obsolete) object and make the restored object an instance of it.
+ This dummy class will be a subclass of ObsoleteObject.
+ Thus, the restored obsolete object will (at least) provide the data
+ (i.e. the contents) of the original object - although it will obviously
+ not be able to implement the original protocol.
After the creation of the obsolete object, a signal will be raised (in
- BinaryInputManager), which can be caught by the application to try some
- automatic or semi-automatic object conversion.
- The signal gets the obsolete object and the new class as parameters.
+ BinaryInputManager), which can be caught by the application to provide
+ a replacement class and/or to try some automatic or semi-automatic object
+ conversion.
+ The signal gets the obsolete object and the new class as parameters, so
+ a handler can extract instance values from the obsolete object and construct a
+ replacement object from those.
ObsoleteObject itself catches all messages, to avoid any use of the restored
object (in case conversion failed or the signal was ignored).
+ Read the documentatio on binary object storage for examples & code fragments,
+ on obsolete object handling and object migration.
+
[author:]
Claus Gittinger
@@ -124,7 +132,12 @@
basicInspect
"this method is required to allow inspection of the object"
- ^ Inspector openOn:self
+ ^ (Object compiledMethodAt:#basicInspect)
+ valueWithReceiver:self
+ arguments:nil
+ selector:#basicInspect
+
+ "Modified: / 30.10.1997 / 14:16:45 / cg"
!
basicSize
@@ -193,7 +206,12 @@
inspect
"this method is required to allow inspection of the object"
- ^ Inspector openOn:self
+ ^ (Object compiledMethodAt:#inspect)
+ valueWithReceiver:self
+ arguments:nil
+ selector:#inspect
+
+ "Modified: / 30.10.1997 / 14:16:33 / cg"
!
instVarAt:index
@@ -236,6 +254,6 @@
!ObsoleteObject class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/ObsoleteObject.st,v 1.16 1997-09-20 21:06:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/ObsoleteObject.st,v 1.17 1997-11-02 17:47:04 cg Exp $'
! !
ObsoleteObject initialize!