BeeProjectDefinitionWriter.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 4376 350ad64fbae9
permissions -rw-r--r--
Copyright updates
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3921
243f926d6101 Some work on Bee project exporter
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
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
              All Rights Reserved
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 hereby transferred.
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
"{ NameSpace: Smalltalk }"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
BeeProjectWriter subclass:#BeeProjectDefinitionWriter
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	instanceVariableNames:''
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	classVariableNames:''
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	poolDictionaries:''
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	category:'Kernel-Classes-Support'
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!BeeProjectDefinitionWriter class methodsFor:'documentation'!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
copyright
243f926d6101 Some work on Bee project exporter
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
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
              All Rights Reserved
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
 hereby transferred.
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
documentation
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    A writer to write Smalltalk/X package in Bee Smalltalk format (.prj). Usage:
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    BeeProjectDefinitionWriter fileOut: 'jv:calipel/s' to: '/tmp/jv-calipel-s.prj'
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    [author:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
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:
diff changeset
    47
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    [instance variables:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    [class variables:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    [see also:]
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
! !
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!BeeProjectDefinitionWriter methodsFor:'source writing'!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
243f926d6101 Some work on Bee project exporter
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: 3922
diff changeset
    60
    | classesToFileout |
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    62
    classesToFileout := classes reject:[:cls | cls isSubclassOf: ProjectDefinition ].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    63
    classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    64
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    65
    classesToFileout do:[:cls | 
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    66
        cls isPrivate ifTrue:[
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    67
            self error:'Cannot file out private class: ',cls name.
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    68
        ].
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    69
    ].  
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    70
    classesToFileout do:[:class |  
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
        stream nextPutAll: 'project addClass: '; nextPutAll: class name storeString; nextPutAll: '.'; cr.
3922
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    72
    ].
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    73
    stream cr.
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
4162
e96794cd9edd Few improvements for Bee Smalltalk exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3922
diff changeset
    75
    "Modified: / 07-09-2016 / 14:34:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
fileOutExtensions:methods on: stream
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
3922
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    80
    stream nextPutAll: '#('; cr.
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    81
    methods do:[:method | 
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    82
        stream nextPut:'''';
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    83
               nextPutAll: method mclass name;
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    84
               nextPutAll: '>>';
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    85
               nextPutAll: method seelctore;
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    86
               nextPut:'''';
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    87
               cr.
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    88
    ].
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    89
    stream nextPutAll: ') do: [:string | project addMethod: string].'
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    90
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    91
    "Modified: / 03-11-2015 / 07:07:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    92
!
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    93
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    94
fileOutFooterOn:aStream
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    95
    aStream cr.
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    96
    aStream cr.
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    97
    aStream nextPutAll: '^ project'.
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    98
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
    99
    "Created: / 03-11-2015 / 23:05:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3921
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
!
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
fileOutHeaderOn:aStream
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    aStream nextPutAll:(
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
'"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
        @VM Project 1.0
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
        __________________________________________________
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
| project |
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
project := SimpleSmalltalkProject new 
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
        name: ''%(NAME)'';
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
        version: ''%(VERSION)'';
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
        description: ''%(DESCRIPTION)'';
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
        author: ''%(AUTHOR)'';
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
        yourself.
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
' bindWithArguments: self mappings)
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
    "Modified: / 02-11-2015 / 19:16:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
! !
243f926d6101 Some work on Bee project exporter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
3922
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   124
!BeeProjectDefinitionWriter class methodsFor:'documentation'!
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   125
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   126
version_HG
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   127
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   128
    ^ '$Changeset: <not expanded> $'
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   129
! !
ae8879b8ba67 Refactored and improved support for writing Bee packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3921
diff changeset
   130