initial checkin
authorfm
Thu, 17 Sep 2009 16:13:30 +0200
changeset 11960 2eddbf18d640
parent 11959 1ff0e6f908d9
child 11961 3e5291372dea
initial checkin
AbstractSourceFileReader.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AbstractSourceFileReader.st	Thu Sep 17 16:13:30 2009 +0200
@@ -0,0 +1,56 @@
+"{ Package: 'stx:libbasic' }"
+
+Object subclass:#AbstractSourceFileReader
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Kernel-Classes'
+!
+
+!AbstractSourceFileReader class methodsFor:'documentation'!
+
+versionSVN
+
+    ^'$Id: AbstractSourceFileReader.st,v 1.1 2009-09-17 14:13:30 fm Exp $'
+! !
+
+!AbstractSourceFileReader class methodsFor:'fileIn'!
+
+fileIn: aFilename
+
+    ^self new fileIn: aFilename
+
+    "Created: / 16-08-2009 / 10:14:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+fileInStream: aStream
+
+    ^self new fileInStream: aStream
+
+    "Created: / 16-08-2009 / 10:15:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!AbstractSourceFileReader methodsFor:'fileIn'!
+
+fileIn:aFilename
+
+    | stream |
+    [stream := aFilename asFilename readStream.
+    self fileInStream: stream]
+        ensure:
+            [stream ifNotNil:[stream close]]
+
+    "Modified: / 15-08-2009 / 14:47:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+fileInStream:arg
+    "raise an error: must be redefined in concrete subclass(es)"
+
+    ^ self subclassResponsibility
+! !
+
+!AbstractSourceFileReader class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractSourceFileReader.st,v 1.1 2009-09-17 14:13:30 fm Exp $'
+! !