initial checkin
authorClaus Gittinger <cg@exept.de>
Wed, 22 Nov 2006 14:05:22 +0100
changeset 36 66bb19317c8c
parent 35 2d464b2efb1d
child 37 8e5cc2b8572c
initial checkin
MCVersionInfoWriter.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCVersionInfoWriter.st	Wed Nov 22 14:05:22 2006 +0100
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+MCWriter subclass:#MCVersionInfoWriter
+	instanceVariableNames:'written'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Monticello-Storing'
+!
+
+
+!MCVersionInfoWriter methodsFor:'as yet unclassified'!
+
+isWritten: aVersionInfo
+	^ self written includes: aVersionInfo
+!
+
+writeVersionInfo: aVersionInfo
+	(self isWritten: aVersionInfo)
+		ifTrue: [^ stream nextPutAll: '(id ', aVersionInfo id asString printString, ')'].
+	stream nextPut: $(.
+	#(name message id date time author) 
+		do: [:sel | 
+			stream nextPutAll: sel.
+			stream nextPut: $ .
+			((aVersionInfo perform: sel) ifNil: ['']) asString printOn: stream.
+			stream nextPut: $ ].
+	stream nextPutAll: 'ancestors ('.
+	aVersionInfo ancestors do: [:ea | self writeVersionInfo: ea].
+	stream nextPutAll: ') stepChildren ('.
+	aVersionInfo stepChildren do: [:ea | self writeVersionInfo: ea].
+	stream nextPutAll: '))'.
+	self wrote: aVersionInfo
+!
+
+written
+	^ written ifNil: [written _ Set new]
+!
+
+wrote: aVersionInfo
+	self written add: aVersionInfo
+! !
+
+!MCVersionInfoWriter class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionInfoWriter.st,v 1.1 2006-11-22 13:05:22 cg Exp $'
+! !