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.15 date: 2021/11/26 13:56:32
user: cg
file: AbstractSourceFileWriter.st directory: libbasic
module: stx stc-classLibrary: libbasic

Description:


Abstract common superclass for source file writers

copyright

COPYRIGHT (c) 2006 by eXept Software AG All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the inclusion of the above copyright notice. This software may not be provided or otherwise made available to, or used by, any other person. No title to or ownership of the software is hereby transferred.

Class protocol:

queries
o  isAbstract
Return if this class is an abstract class.
True is returned here for myself only; false for subclasses.
Abstract subclasses must redefine this again.

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 must be redefined in concrete classes (subclassResponsibility) **

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

** This method must be redefined in concrete classes (subclassResponsibility) **

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 must be redefined in concrete classes (subclassResponsibility) **

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 must be redefined in concrete classes (subclassResponsibility) **

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 must be redefined in concrete classes (subclassResponsibility) **

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


** This method must be redefined in concrete classes (subclassResponsibility) **


Private classes:

    MethodSourceRewriteQuery


ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Sat, 21 Dec 2024 17:25:43 GMT