Generalize visitor pattern and define #visit...:with: -methods instead
authorStefan Vogel <sv@exept.de>
Fri, 11 Jun 2004 20:17:09 +0200
changeset 8395 6bd97113cb4c
parent 8394 da194de43766
child 8396 b13503dbc53c
Generalize visitor pattern and define #visit...:with: -methods instead of #encode...:with:
CharacterArray.st
Collection.st
Dictionary.st
Fraction.st
LimitedPrecisionReal.st
Symbol.st
UndefinedObject.st
--- a/CharacterArray.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/CharacterArray.st	Fri Jun 11 20:17:09 2004 +0200
@@ -2827,12 +2827,6 @@
     ^ CharacterEncoder encodeString:self from:oldEncoding into:newEncoding
 !
 
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeString:self with:aParameter
-
-!
-
 rot13
      "Usenet: from `rotate alphabet 13 places'] 
       The simple Caesar-cypher encryption that replaces each English
@@ -4978,10 +4972,17 @@
 
 ! !
 
+!CharacterArray methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitString:self with:aParameter
+! !
+
 !CharacterArray class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.304 2004-06-07 09:04:10 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.305 2004-06-11 18:14:28 stefan Exp $'
 ! !
 
 CharacterArray initialize!
--- a/Collection.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/Collection.st	Fri Jun 11 20:17:09 2004 +0200
@@ -1375,13 +1375,6 @@
     "Modified: / 19.4.1998 / 20:03:57 / cg"
 ! !
 
-!Collection methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeCollection:self with:aParameter
-! !
-
 !Collection methodsFor:'enumerating'!
 
 addAllTo:aCollection
@@ -2741,10 +2734,17 @@
 
 ! !
 
+!Collection methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitCollection:self with:aParameter
+! !
+
 !Collection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.162 2004-05-13 18:57:22 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.163 2004-06-11 18:17:09 stefan Exp $'
 ! !
 
 Collection initialize!
--- a/Dictionary.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/Dictionary.st	Fri Jun 11 20:17:09 2004 +0200
@@ -1134,13 +1134,6 @@
     valueArray := valueArray shallowCopy
 ! !
 
-!Dictionary methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeDictionary:self with:aParameter
-! !
-
 !Dictionary methodsFor:'enumerating'!
 
 allKeysDo:aBlock
@@ -1897,6 +1890,13 @@
 
 ! !
 
+!Dictionary methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitDictionary:self with:aParameter
+! !
+
 !Dictionary::NilKey class methodsFor:'instance creation'!
 
 basicNew
@@ -1911,7 +1911,7 @@
 !Dictionary class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.81 2004-02-11 14:03:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.82 2004-06-11 18:15:49 stefan Exp $'
 ! !
 
 Dictionary initialize!
--- a/Fraction.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/Fraction.st	Fri Jun 11 20:17:09 2004 +0200
@@ -900,13 +900,6 @@
     "Modified: 28.7.1997 / 19:08:40 / cg"
 ! !
 
-!Fraction methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeFraction:self with:aParameter
-! !
-
 !Fraction methodsFor:'printing & storing'!
 
 printOn:aStream
@@ -1092,10 +1085,17 @@
     "Modified: 5.11.1996 / 12:18:46 / cg"
 ! !
 
+!Fraction methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitFraction:self with:aParameter
+! !
+
 !Fraction class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.69 2004-01-29 13:20:14 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.70 2004-06-11 18:16:08 stefan Exp $'
 ! !
 
 Fraction initialize!
--- a/LimitedPrecisionReal.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/LimitedPrecisionReal.st	Fri Jun 11 20:17:09 2004 +0200
@@ -797,15 +797,6 @@
     ^ (self * d + aFraction numerator) / d
 ! !
 
-!LimitedPrecisionReal methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeFloat:self with:aParameter
-
-
-! !
-
 !LimitedPrecisionReal methodsFor:'printing & storing'!
 
 printOn:aStream
@@ -969,10 +960,17 @@
     "
 ! !
 
+!LimitedPrecisionReal methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitFloat:self with:aParameter
+! !
+
 !LimitedPrecisionReal class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/LimitedPrecisionReal.st,v 1.59 2004-03-16 08:52:06 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LimitedPrecisionReal.st,v 1.60 2004-06-11 18:16:48 stefan Exp $'
 ! !
 
 LimitedPrecisionReal initialize!
--- a/Symbol.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/Symbol.st	Fri Jun 11 20:17:09 2004 +0200
@@ -513,13 +513,6 @@
      ^ self
 ! !
 
-!Symbol methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeSymbol:self with:aParameter
-! !
-
 !Symbol methodsFor:'printing & storing'!
 
 displayString
@@ -742,8 +735,15 @@
 
 ! !
 
+!Symbol methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitSymbol:self with:aParameter
+! !
+
 !Symbol class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.77 2004-06-08 10:30:08 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.78 2004-06-11 18:15:14 stefan Exp $'
 ! !
--- a/UndefinedObject.st	Fri Jun 11 20:12:49 2004 +0200
+++ b/UndefinedObject.st	Fri Jun 11 20:17:09 2004 +0200
@@ -246,15 +246,6 @@
     "ignored here - nil has no dependents"
 ! !
 
-!UndefinedObject methodsFor:'encoding'!
-
-encodeOn:anEncoder with:aParameter
-
-    anEncoder encodeNilWith:aParameter
-
-
-! !
-
 !UndefinedObject methodsFor:'error catching'!
 
 basicAt:index
@@ -682,10 +673,17 @@
 
 ! !
 
+!UndefinedObject methodsFor:'visiting'!
+
+acceptVisitor:aVisitor with:aParameter
+
+    ^ aVisitor visitNilWith:aParameter
+! !
+
 !UndefinedObject class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.58 2004-06-08 10:30:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.59 2004-06-11 18:15:33 stefan Exp $'
 ! !
 
 UndefinedObject initialize!