AbstractSourceFileWriter.st
author fm
Thu, 17 Sep 2009 16:14:08 +0200
changeset 11962 3303e65f30cd
child 12011 1c12ff1bc536
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11962
3303e65f30cd initial checkin
fm
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
3303e65f30cd initial checkin
fm
parents:
diff changeset
     2
3303e65f30cd initial checkin
fm
parents:
diff changeset
     3
Object subclass:#AbstractSourceFileWriter
3303e65f30cd initial checkin
fm
parents:
diff changeset
     4
	instanceVariableNames:''
3303e65f30cd initial checkin
fm
parents:
diff changeset
     5
	classVariableNames:''
3303e65f30cd initial checkin
fm
parents:
diff changeset
     6
	poolDictionaries:''
3303e65f30cd initial checkin
fm
parents:
diff changeset
     7
	category:'Kernel-Classes'
3303e65f30cd initial checkin
fm
parents:
diff changeset
     8
!
3303e65f30cd initial checkin
fm
parents:
diff changeset
     9
3303e65f30cd initial checkin
fm
parents:
diff changeset
    10
!AbstractSourceFileWriter class methodsFor:'documentation'!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    11
3303e65f30cd initial checkin
fm
parents:
diff changeset
    12
versionSVN
3303e65f30cd initial checkin
fm
parents:
diff changeset
    13
3303e65f30cd initial checkin
fm
parents:
diff changeset
    14
    ^'$Id: AbstractSourceFileWriter.st,v 1.1 2009-09-17 14:14:08 fm Exp $'
3303e65f30cd initial checkin
fm
parents:
diff changeset
    15
! !
3303e65f30cd initial checkin
fm
parents:
diff changeset
    16
3303e65f30cd initial checkin
fm
parents:
diff changeset
    17
!AbstractSourceFileWriter methodsFor:'fileout'!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    18
3303e65f30cd initial checkin
fm
parents:
diff changeset
    19
fileOut:aClass on:outStreamArg 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    20
3303e65f30cd initial checkin
fm
parents:
diff changeset
    21
    self 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    22
        fileOut:aClass on:outStreamArg 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    23
        withTimeStamp:true withInitialize:true 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    24
        withDefinition:true 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    25
        methodFilter:nil encoder:nil
3303e65f30cd initial checkin
fm
parents:
diff changeset
    26
3303e65f30cd initial checkin
fm
parents:
diff changeset
    27
    "Created: / 15-08-2009 / 13:11:31 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    28
! !
3303e65f30cd initial checkin
fm
parents:
diff changeset
    29
3303e65f30cd initial checkin
fm
parents:
diff changeset
    30
!AbstractSourceFileWriter methodsFor:'source writing'!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    31
3303e65f30cd initial checkin
fm
parents:
diff changeset
    32
fileOut: class on:stream withTimeStamp: stampIt withInitialize: initIt withDefinition: withDefinition methodFilter:methodFilter encoder:encoderOrNil
3303e65f30cd initial checkin
fm
parents:
diff changeset
    33
    "raise an error: must be redefined in concrete subclass(es)"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    34
3303e65f30cd initial checkin
fm
parents:
diff changeset
    35
    ^ self subclassResponsibility
3303e65f30cd initial checkin
fm
parents:
diff changeset
    36
3303e65f30cd initial checkin
fm
parents:
diff changeset
    37
    "Modified: / 16-08-2009 / 09:59:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    38
! !
3303e65f30cd initial checkin
fm
parents:
diff changeset
    39
3303e65f30cd initial checkin
fm
parents:
diff changeset
    40
!AbstractSourceFileWriter methodsFor:'source writing - comments'!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    41
3303e65f30cd initial checkin
fm
parents:
diff changeset
    42
fileOutComment: aStringOrStringCollection on: aStream
3303e65f30cd initial checkin
fm
parents:
diff changeset
    43
3303e65f30cd initial checkin
fm
parents:
diff changeset
    44
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    45
        Writes a comment to a stream
3303e65f30cd initial checkin
fm
parents:
diff changeset
    46
        using proper syntax
3303e65f30cd initial checkin
fm
parents:
diff changeset
    47
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    48
    self fileOutCommentStartOn: aStream.
3303e65f30cd initial checkin
fm
parents:
diff changeset
    49
    aStringOrStringCollection isStringCollection
3303e65f30cd initial checkin
fm
parents:
diff changeset
    50
        ifTrue:
3303e65f30cd initial checkin
fm
parents:
diff changeset
    51
            [aStringOrStringCollection 
3303e65f30cd initial checkin
fm
parents:
diff changeset
    52
                do:[:line|self fileOutCommentLine: line on: aStream]
3303e65f30cd initial checkin
fm
parents:
diff changeset
    53
                separatedBy: [aStream cr]]
3303e65f30cd initial checkin
fm
parents:
diff changeset
    54
        ifFalse:
3303e65f30cd initial checkin
fm
parents:
diff changeset
    55
            [(aStringOrStringCollection includes: Character cr)
3303e65f30cd initial checkin
fm
parents:
diff changeset
    56
                ifTrue:"/hmm...multiline comment as string
3303e65f30cd initial checkin
fm
parents:
diff changeset
    57
                    [aStringOrStringCollection asStringCollection
3303e65f30cd initial checkin
fm
parents:
diff changeset
    58
                        do:[:line|self fileOutCommentLine: line on: aStream]
3303e65f30cd initial checkin
fm
parents:
diff changeset
    59
                        separatedBy: [aStream cr]]
3303e65f30cd initial checkin
fm
parents:
diff changeset
    60
                ifFalse:
3303e65f30cd initial checkin
fm
parents:
diff changeset
    61
                    [self fileOutCommentLine: aStringOrStringCollection on: aStream]].
3303e65f30cd initial checkin
fm
parents:
diff changeset
    62
    self fileOutCommentEndOn: aStream.
3303e65f30cd initial checkin
fm
parents:
diff changeset
    63
3303e65f30cd initial checkin
fm
parents:
diff changeset
    64
    "Created: / 21-08-2009 / 09:36:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    65
!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    66
3303e65f30cd initial checkin
fm
parents:
diff changeset
    67
fileOutCommentEndOn: aStream
3303e65f30cd initial checkin
fm
parents:
diff changeset
    68
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    69
        Writes a comment end mark on aStream.
3303e65f30cd initial checkin
fm
parents:
diff changeset
    70
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    71
3303e65f30cd initial checkin
fm
parents:
diff changeset
    72
    ^self subclassResponsibility
3303e65f30cd initial checkin
fm
parents:
diff changeset
    73
3303e65f30cd initial checkin
fm
parents:
diff changeset
    74
    "Created: / 21-08-2009 / 09:40:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    75
!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    76
3303e65f30cd initial checkin
fm
parents:
diff changeset
    77
fileOutCommentLine: aString on: aStream
3303e65f30cd initial checkin
fm
parents:
diff changeset
    78
3303e65f30cd initial checkin
fm
parents:
diff changeset
    79
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    80
        Writes a single line of comment on a comment to a stream.
3303e65f30cd initial checkin
fm
parents:
diff changeset
    81
        Should not put an cr to the stream!!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    82
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    83
3303e65f30cd initial checkin
fm
parents:
diff changeset
    84
    ^self subclassResponsibility
3303e65f30cd initial checkin
fm
parents:
diff changeset
    85
3303e65f30cd initial checkin
fm
parents:
diff changeset
    86
    "Created: / 21-08-2009 / 09:42:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    87
!
3303e65f30cd initial checkin
fm
parents:
diff changeset
    88
3303e65f30cd initial checkin
fm
parents:
diff changeset
    89
fileOutCommentStartOn: aStream
3303e65f30cd initial checkin
fm
parents:
diff changeset
    90
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    91
        Writes a comment start mark on aStream.
3303e65f30cd initial checkin
fm
parents:
diff changeset
    92
    "
3303e65f30cd initial checkin
fm
parents:
diff changeset
    93
3303e65f30cd initial checkin
fm
parents:
diff changeset
    94
    ^self subclassResponsibility
3303e65f30cd initial checkin
fm
parents:
diff changeset
    95
3303e65f30cd initial checkin
fm
parents:
diff changeset
    96
    "Created: / 21-08-2009 / 09:40:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
3303e65f30cd initial checkin
fm
parents:
diff changeset
    97
! !
3303e65f30cd initial checkin
fm
parents:
diff changeset
    98
3303e65f30cd initial checkin
fm
parents:
diff changeset
    99
!AbstractSourceFileWriter class methodsFor:'documentation'!
3303e65f30cd initial checkin
fm
parents:
diff changeset
   100
3303e65f30cd initial checkin
fm
parents:
diff changeset
   101
version
3303e65f30cd initial checkin
fm
parents:
diff changeset
   102
    ^ '$Header: /cvs/stx/stx/libbasic/AbstractSourceFileWriter.st,v 1.1 2009-09-17 14:14:08 fm Exp $'
3303e65f30cd initial checkin
fm
parents:
diff changeset
   103
! !