BeeProjectSourceWriter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 28 Oct 2018 14:18:04 +0000
branchjv
changeset 4377 cbf86fdee06c
parent 4376 350ad64fbae9
child 4381 5f0582aa5462
permissions -rw-r--r--
`BeeProjectSourceWriter`: add support for shared pools Pools have to be treated specially since in Bee pools are not classes like in Smalltalk/X or Squeak.
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
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    17
	instanceVariableNames:'porter'
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
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    57
!BeeProjectSourceWriter methodsFor:'initialization'!
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    58
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    59
initialize
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    60
    "Invoked when a new instance is created."
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    61
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    62
    super initialize.
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    63
    porter := BeeSourcePorter new.
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    64
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    65
    "Created: / 26-10-2018 / 11:44:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    66
! !
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    67
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!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
    69
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
fileOutClasses: classes on: stream
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    71
    stream nextPutAll: '"**** Class definitions ****"!!'; cr.
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    72
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    73
    classes topologicalSort:[:a :b | b isSubclassOf:a].
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    74
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    75
    classes do:[:cls | 
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    76
        cls isPrivate ifTrue:[
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    77
            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
    78
        ].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    79
    ].  
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
4376
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
    81
    [
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    82
        classes do:[:class |
4367
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    83
            self activityNotification:'exporting ', class name,'...'.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    84
            writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:true methodFilter:[:m | false]
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    85
        ].
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
    86
        classes do:[:class |
4367
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    87
            self activityNotification:'exporting ', class name,'...'.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    88
            writer fileOut:class on:stream withTimeStamp:false withInitialize:false withDefinition:false methodFilter:[:m | 
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    89
                | who |
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    90
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    91
                who := m who.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    92
                (who methodClass isMetaclass and:[ who methodSelector == #copyright ]) not
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    93
                    and:[ (AbstractSourceCodeManager isVersionMethodSelector: who methodSelector) not ]
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    94
            ]
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
    95
        ].
4376
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
    96
    ] on: AbstractSourceFileWriter methodSourceRewriteQuery do:[:request |
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
    97
        | method source |
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
    98
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
    99
        method := request method.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   100
        source := request source.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   101
        source := porter portMethod: method source: source.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   102
        request proceedWith: source.         
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   103
    ] on: AbstractSourceFileWriter classSourceRewriteQuery do:[:request |
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   104
        | klass source |
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   105
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   106
        klass := request klass.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   107
        source := request source.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   108
        source := porter portClass: klass source: source.
350ad64fbae9 `BeeSourcePorter` strip namespace from class names
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4367
diff changeset
   109
        request proceedWith: source.         
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    "Created: / 14-04-2015 / 13:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   113
    "Modified: / 29-10-2018 / 15:50:24 / 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
   114
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
fileOutExtensions: methods on:stream
4367
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   117
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    self activityNotification:'exporting extensions...'.
4367
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   119
    AbstractSourceFileWriter methodSourceRewriteQuery handle:[:request |
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   120
        | method source |
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   121
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   122
        method := request method.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   123
        source := request source.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   124
        source := porter port: method.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   125
        request proceedWith: source.         
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   126
    ] do:[
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   127
        methods do:[:eachMethod |
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   128
            writer fileOutMethods:methods on:stream.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   129
            stream cr.
7ca6042ee443 `BeeProjectSourceWriter`: add support for automagic source code porting
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4330
diff changeset
   130
        ]
3850
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
    ]
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   133
    "Modified: / 26-10-2018 / 11:44:35 / 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
   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
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
   137
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   138
    aStream nextPutAll:(
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   139
'"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   140
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   141
        Author: %(AUTHOR).
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   142
        Project name: %(NAME)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   143
        Version: %(VERSION)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   144
        Timestamp: %(TIMESTAMP)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   145
        Description: %(DESCRIPTION)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   146
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   147
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   148
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3850
diff changeset
   149
' 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
   150
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    "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
   152
    "Modified: / 02-11-2015 / 19:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   153
!
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   154
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   155
fileOutPools: pools on: stream   
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   156
    pools do:[:pool | 
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   157
        self activityNotification:'exporting ', pool name,'...'.
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   158
        writer fileOutPool:pool on:stream.          
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   159
    ].
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   160
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   161
    "Created: / 29-10-2018 / 15:42:07 / 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
   162
! !
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
!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
   165
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
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
   167
    "/ 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
   168
    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
   169
         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
   170
            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
   171
         ]
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
!
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
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
   176
    |src|
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    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
   179
    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
   180
        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
   181
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    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
   183
        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
   184
    ].
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
! !
461c0b054a4f Added Bee source writer (both for inidividual classes and for project sources)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
4377
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   187
!BeeProjectSourceWriter class methodsFor:'documentation'!
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   188
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   189
version_HG
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   190
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   191
    ^ '$Changeset: <not expanded> $'
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   192
! !
cbf86fdee06c `BeeProjectSourceWriter`: add support for shared pools
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4376
diff changeset
   193