--- a/ArrayedCollection.st Thu Aug 03 19:48:44 2000 +0200
+++ b/ArrayedCollection.st Fri Aug 04 18:44:15 2000 +0200
@@ -10,6 +10,8 @@
hereby transferred.
"
+"{ Package: 'stx:libbasic' }"
+
SequenceableCollection subclass:#ArrayedCollection
instanceVariableNames:''
classVariableNames:''
@@ -298,6 +300,7 @@
|index "{ Class: SmallInteger }"|
thisContext isRecursive ifTrue:[
+ RecursiveCollectionStoreStringSignal raiseRequestWith:self.
'ArrayedCollection [error]: storeOn: of self referencing collection.' errorPrintCR.
aStream nextPutAll:'#recursive'.
^ self
@@ -415,5 +418,5 @@
!ArrayedCollection class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.44 1997-06-16 18:20:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.45 2000-08-04 16:44:15 tm Exp $'
! !
--- a/Collection.st Thu Aug 03 19:48:44 2000 +0200
+++ b/Collection.st Fri Aug 04 18:44:15 2000 +0200
@@ -15,7 +15,7 @@
Object subclass:#Collection
instanceVariableNames:''
classVariableNames:'InvalidKeySignal EmptyCollectionSignal ValueNotFoundSignal
- NotEnoughElementsSignal'
+ NotEnoughElementsSignal RecursiveCollectionStoreStringSignal'
poolDictionaries:''
category:'Collections-Abstract'
!
@@ -86,6 +86,10 @@
EmptyCollectionSignal := NotEnoughElementsSignal newSignalMayProceed:true.
EmptyCollectionSignal nameClass:self message:#emptyCollectionSignal.
EmptyCollectionSignal notifierString:'operation not allowed for empty collections'.
+
+ RecursiveCollectionStoreStringSignal := QuerySignal new.
+ RecursiveCollectionStoreStringSignal nameClass:self message:#recursiveCollectionStoreStringSignal.
+ RecursiveCollectionStoreStringSignal notifierString:'attempt to generate storeString of recursive collection'.
]
"Modified: / 8.11.1997 / 19:18:17 / cg"
@@ -223,6 +227,33 @@
^ NotEnoughElementsSignal
!
+recursiveCollectionStoreStringSignal
+ "return the query signal used to report storeString generation of recursive collections"
+
+ ^ RecursiveCollectionStoreStringSignal
+
+ "
+ Collection recursiveCollectionStoreStringSignal handle:[:ex |
+ self halt
+ ] do:[
+ |a|
+
+ a := Array new:1.
+ a at:1 put:a.
+ a storeOn:Transcript
+ ]
+ "
+
+ "
+ |a|
+
+ a := Array new:1.
+ a at:1 put:a.
+ a storeOn:Transcript
+ "
+
+!
+
valueNotFoundSignal
"return the signal used to report a nonexisting element."
@@ -1817,6 +1848,7 @@
|notEmpty|
thisContext isRecursive ifTrue:[
+ RecursiveCollectionStoreStringSignal raiseRequestWith:self.
'Collection [error]: storeOn: of self referencing collection.' errorPrintCR.
aStream nextPutAll:'#recursive'.
^ self
@@ -2106,6 +2138,6 @@
!Collection class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.98 2000-04-07 08:09:58 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.99 2000-08-04 16:44:03 tm Exp $'
! !
Collection initialize!