eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'AbstractSourceFileWriter':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: AbstractSourceFileWriter


Inheritance:

   Object
   |
   +--AbstractSourceFileWriter
      |
      +--JavaScriptSourceFileWriter
      |
      +--SmalltalkChunkFileSourceWriter

Package:
stx:libbasic
Category:
Kernel-Classes-Support
Version:
rev: 1.13 date: 2015/11/18 12:15:46
user: cg
file: AbstractSourceFileWriter.st directory: libbasic
module: stx stc-classLibrary: libbasic

Description:


Abstract common superclass for source file writers


Class protocol:

queries
o  isAbstract

signal constants
o  methodSourceRewriteQuery
hook to allow for just-in-time rewriting of a method's sourceCode while filing out
used when saving version_XXX methods in a non-XXX sourceCodeManager
(i.e. to rewrite all non-CVS version methods while saving into a CVS repository)
this is required because we cannot save an SVN version method (dollar-ID-...-dollar) into a
CVS repository without loosing the original string with the next checkout, because it also gets
expanded by CVS. The same is true vice-versa for CVS-Ids, which get clobbered by SVN.

see SmalltalkChunkFileSourceWriter fileOutMethod:on:


Instance protocol:

accessing
o  generatingSourceForOriginal: aBoolean
if false (the default), the source of the current (in image) code is generated.
That means, that any extension method which shadows some other original method,
that extension method's code is generated.
if true, the code of the original method is generated.
Use a true value, when generating code for a SCM checkin operation, as then we do not
want the extension to shadow the original

fileout
o  fileOut: aClass on: outStreamArg

source writing
o  fileOut: class on: stream withTimeStamp: stampIt withInitialize: initIt withDefinition: withDefinition methodFilter: methodFilter

o  fileOut: class on: stream withTimeStamp: stampIt withInitialize: initIt withDefinition: withDefinition methodFilter: methodFilter encoder: encoderOrNil
raise an error: must be redefined in concrete subclass(es)

** This method raises an error - it must be redefined in concrete classes **

o  fileOutMethods: methods on: stream
Files out a bunch of methods. This is used to file-out extension methods

** This method raises an error - it must be redefined in concrete classes **

o  fileOutPackageDefinition: packageId on: stream
Files out a package definition on the stream, so all subsequent
code entities will be placed in that package

** This method raises an error - it must be redefined in concrete classes **

source writing - comments
o  fileOutComment: aStringOrStringCollection on: aStream
Writes a comment to a stream using proper syntax

o  fileOutCommentEndOn: aStream
Writes a comment end mark on aStream.


** This method raises an error - it must be redefined in concrete classes **

o  fileOutCommentLine: aString on: aStream
Writes a single line of comment on a comment to a stream.
Should not put an cr to the stream!


** This method raises an error - it must be redefined in concrete classes **

o  fileOutCommentStartOn: aStream
Writes a comment start mark on aStream.


** This method raises an error - it must be redefined in concrete classes **


Private classes:

    MethodSourceRewriteQuery


ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Thu, 11 Aug 2022 12:24:49 GMT