BeeProjectSourceWriter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 31 May 2018 10:52:50 +0100
branchjv
changeset 4330 998eb03f0736
parent 4162 e96794cd9edd
child 4367 7ca6042ee443
permissions -rw-r--r--
Copyright updates
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
4330
998eb03f0736 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4162
diff changeset
     2
 COPYRIGHT (c) 2015-2016 Jan Vrany
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
              All Rights Reserved
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 hereby transferred.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
"{ NameSpace: Smalltalk }"
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    16
BeeProjectWriter subclass:#BeeProjectSourceWriter
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    17
	instanceVariableNames:''
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	classVariableNames:''
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	poolDictionaries:''
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	category:'Kernel-Classes-Support'
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!BeeProjectSourceWriter class methodsFor:'documentation'!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
copyright
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"
4330
998eb03f0736 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4162
diff changeset
    27
 COPYRIGHT (c) 2015-2016 Jan Vrany
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
              All Rights Reserved
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
 hereby transferred.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
"
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    37
!
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    39
documentation
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    40
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    41
    A writer to write Smalltalk/X package in Bee Smalltalk format (.stp). Usage:
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    42
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    43
    BeeProjectSourceWriter fileOut: 'jv:calipel/s' to: '/tmp/jv-calipel-s.stp'
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    45
    [author:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    46
        Jan Vrany <jan.vrany@fit.cvut.cz>
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    47
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    48
    [instance variables:]
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    50
    [class variables:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    51
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    52
    [see also:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    53
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
    54
"
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
! !
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!BeeProjectSourceWriter methodsFor:'source writing'!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
fileOutClasses: classes on: stream
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    60
    | classesToFileout writer |
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    61
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    62
    stream nextPutAll: '"**** Class definitions ****"!!'; cr.
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    63
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    64
    classesToFileout := classes reject:[:cls | cls isSubclassOf: ProjectDefinition ].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    65
    classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    66
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    67
    classesToFileout do:[:cls | 
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    68
        cls isPrivate ifTrue:[
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    69
            self error:'Cannot file out private class: ',cls name.
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    70
        ].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    71
    ].  
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    writer := BeeSourceWriter new.
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    74
    classesToFileout do:[:class |
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
        self activityNotification:'exporting ', class name,'...'.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
        writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:true methodFilter:[:m | false]
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    ].
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    78
    classesToFileout do:[:class |
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
        self activityNotification:'exporting ', class name,'...'.
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    80
        writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:false methodFilter:[:m | 
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    81
            | who |
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    82
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    83
            who := m who.
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    84
            (who methodClass isMetaclass and:[ who methodSelector == #copyright ]) not
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    85
                and:[ (AbstractSourceCodeManager isVersionMethodSelector: who methodSelector) not ]
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    86
        ]
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    "Created: / 14-04-2015 / 13:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    90
    "Modified: / 07-09-2016 / 15:50:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
fileOutExtensions: methods on:stream
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    | writer |
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    writer := BeeSourceWriter new.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    self activityNotification:'exporting extensions...'.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    methods do:[:eachMethod |
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
        writer fileOutMethods:methods on:stream.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
        stream cr.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ]
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    "Modified: / 14-04-2015 / 13:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
fileOutHeaderOn: aStream
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   108
    aStream nextPutAll:(
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   109
'"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   110
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   111
        Author: %(AUTHOR).
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   112
        Project name: %(NAME)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   113
        Version: %(VERSION)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   114
        Timestamp: %(TIMESTAMP)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   115
        Description: %(DESCRIPTION)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   116
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   117
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   118
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   119
' bindWithArguments: self mappings)
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    "Created: / 14-04-2015 / 13:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   122
    "Modified: / 02-11-2015 / 19:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
! !
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
!BeeProjectSourceWriter methodsFor:'utilities'!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
ensureNoUnicodeInClass:aClass
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    "/ check if we need UTF8 encoding
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
    aClass withAllPrivateClasses do:[:cls |
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
         cls instAndClassMethods contains:[:m |
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
            self ensureNoUnicodeInMethod:m
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
         ]
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
ensureNoUnicodeInMethod:aMethod
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    |src|
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    src := aMethod source.
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    src isNil ifTrue:[
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
        self error:'missing source in ',aMethod whoString
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
    src asSingleByteStringIfPossible isWideString ifTrue:[
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
        self error:(aMethod whoString , ' contains unicode strings or character contants. Cannot be exported to VSE')
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
! !
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147