eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ClassCategoryReader':

Home

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

Class: ClassCategoryReader


Inheritance:

   Object
   |
   +--ClassCategoryReader
      |
      +--Dolphin::ClassCategoriesReader
      |
      +--Dolphin::MethodCategoriesReader
      |
      +--Squeak::ClassCommentReader

Package:
stx:libbasic
Category:
Kernel-Support
Version:
rev: 1.58 date: 2017/12/18 09:11:31
user: mawalch
file: ClassCategoryReader.st directory: libbasic
module: stx stc-classLibrary: libbasic
Author:
Claus Gittinger

Description:


a helper class for fileIn - keeps track of class and category to filein for.
Instances of this are created by the #methodsFor: methods in Class, to
read the next chunk(s) from a stream.

ClassCategoryReaders allow different ways of keeping the sourceCode of its
loaded code. This is controlled by the SourceMode class variable which may be:

    #discard         - forget the source code; no browsing/recompilation is possible

    #keep            - keep the source code as a string.
                       any saved image will later be fully independent of any
                       source files.

    #reference       - keep a reference to the loaded files basename
                       In order to be browsable, the original sourcefile should be
                       found along the sourcePath
                       (i.e. typically a link in the source directory should be present)

    #absReference    - keep a reference to the loaded files absolute pathname
                       but only if the file ends with .st.
                       (this is ok in multiUser configurations, where all sourcefiles are mounted
                       on a common path; typically automounted systems)

    #forceAbsReference
                     - like above, but also do it for files not ending with .st.
                       Must be used with care - NEVER ever reference sources from the changes
                       file, because the changesBrowser does not adjust methods sources
                       when it compresses or removes changes.

    #sourceReference - append source to the `st.src' file,
                       and keep a reference to that file.
                       if the image is later moved to another location,
                       this file should be moved along with it.


Related information:

    Class
    PositionableStream

Class protocol:

defaults
o  keepSource

o  keepSource: aBoolean

o  skipUnchangedMethods
return true, if the default for unchanged methods is to skip them.
The default is true.

o  skipUnchangedMethods: aBoolean
return true, if the default for unchanged methods is to skip them.
The default is true. Can be temporarily changed to false, if
a forced fileIn is required.

o  sourceMode
return the sourceMode, which controls how sources are to be handled.
Read #documentation for more info

o  sourceMode: aSymbol
set the sourceMode, which controls how sources are to be handled.
Read #documentation for more info

initialization
o  initialize
ClassCategoryReader initialize

instance creation
o  class: aClass
return a new ClassCategoryReader to operate on aClass

o  class: aClass category: aCategory
return a new ClassCategoryReader to read methods for aClass with
methodCategory aCategory

o  class: aClass primitiveSpec: which
return a ClassCategoryReader to read a primitiveSpec chunk


Instance protocol:

fileIn
o  fileInFrom: aStream
read method-chunks from the input stream, aStream; compile them
and add the methods to the class defined by the class-instance var

o  fileInFrom: aStream notifying: requestor passChunk: passChunk
read method-chunks from the input stream, aStream; compile them
and add the methods to the class defined by the class-instance var;
errors and notifications are passed to requestor.
If passChunk is true, chunks are given to the requestor,
via a #source: message, allowing it to open a view showing any
erroneous source code.

o  fileInFrom: aStream notifying: requestor passChunk: passChunk single: oneChunkOnly
read method-chunks from the input stream, aStream; compile them
and add the methods to the class defined by the class-instance var;
errors and notifications are passed to requestor.
If passChunk is true, chunks are given to the requestor,
via a #source: message, allowing it to open a view showing any
erroneous source code.
If oneChunkOnly is true, the fileIn is finished after the first chunk.

o  fileInFrom: aStream notifying: requestor passChunk: passChunk single: oneChunkOnly silent: beSilent
read method-chunks from the input stream, aStream; compile them
and add the methods to the class defined by the class-instance var;
errors and notifications are passed to requestor.
If passChunk is true, chunks are given to the requestor,
via a #source: message, allowing it to open a view showing any
erroneous source code.
If oneChunkOnly is true, the fileIn is finished after the first chunk.
The beSilent argument controls output to the transcript, if it's true or
false. If it's nil, output is controlled by the Smalltalk>>silenLoading setting.

o  fileInFrom: aStream silent: beSilent
read method-chunks from the input stream, aStream; compile them
and add the methods to the class defined by the class-instance var.
The beSilent argument controls if a message is to be sent to the Transcript.

private
o  class: aClass category: aCategory
set the instance variables

o  class: aClass primitiveSpec: which
set the instance variables

special
o  ignoredProtocol

o  privateProtocol

o  protectedProtocol



ST/X 7.1.0.0; WebServer 1.663 at exept.de:8081; Fri, 20 Jul 2018 06:24:20 GMT