Metaclass.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 06 Oct 2011 10:18:54 +0100
branchjv
changeset 17880 360b58c69299
parent 17878 dc6fef4c42b1
child 18011 deb0c3355881
permissions -rw-r--r--
renamed & fixed sourceCodeManagerFromBinaryRevision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1988 by Claus Gittinger
159
514c749165c3 *** empty log message ***
claus
parents: 93
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
5341
e7465ebd9126 change notification for new classes
Claus Gittinger <cg@exept.de>
parents: 5328
diff changeset
    12
"{ Package: 'stx:libbasic' }"
e7465ebd9126 change notification for new classes
Claus Gittinger <cg@exept.de>
parents: 5328
diff changeset
    13
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
    14
ClassDescription subclass:#Metaclass
1047
5d4d1c7411ab dont clobber the binaryRevision from a nonBinary-one
ca
parents: 986
diff changeset
    15
	instanceVariableNames:'myClass'
2822
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    16
	classVariableNames:'ConfirmationQuerySignal'
1047
5d4d1c7411ab dont clobber the binaryRevision from a nonBinary-one
ca
parents: 986
diff changeset
    17
	poolDictionaries:''
5d4d1c7411ab dont clobber the binaryRevision from a nonBinary-one
ca
parents: 986
diff changeset
    18
	category:'Kernel-Classes'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
1742
e1ee359969f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1733
diff changeset
    21
!Metaclass class methodsFor:'documentation'!
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
    22
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    23
copyright
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    24
"
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    25
 COPYRIGHT (c) 1988 by Claus Gittinger
159
514c749165c3 *** empty log message ***
claus
parents: 93
diff changeset
    26
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    27
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    28
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    29
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    31
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    32
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    33
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    34
"
621
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    35
!
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    36
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    37
documentation
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    38
"
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    39
    every classes class is a subclass of Metaclass.
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    40
    (i.e. every class is the sole instance of its Metaclass)
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
    41
    Metaclass provides support for creating new (sub)classes and/or
621
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    42
    changing the definition of an already existing class.
1292
89497fff7f87 documentation
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
    43
89497fff7f87 documentation
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
    44
    [author:]
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
    45
	Claus Gittinger
1669
4951596746f7 comments & code cleanup
Claus Gittinger <cg@exept.de>
parents: 1655
diff changeset
    46
4951596746f7 comments & code cleanup
Claus Gittinger <cg@exept.de>
parents: 1655
diff changeset
    47
    [see also:]
4951596746f7 comments & code cleanup
Claus Gittinger <cg@exept.de>
parents: 1655
diff changeset
    48
	Behavior ClassDescription Class
621
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
    49
"
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    50
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    51
2822
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    52
!Metaclass class methodsFor:'Signal constants'!
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    53
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    54
confirmationQuerySignal
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    55
    "return the query signal which is raised to ask if user
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    56
     confirmation dialogs should be opened.
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    57
     If unhandled, they are."
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    58
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    59
    ^ ConfirmationQuerySignal
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    60
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    61
    "Created: 31.7.1997 / 21:55:39 / cg"
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    62
! !
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    63
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    64
!Metaclass class methodsFor:'class initialization'!
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    65
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    66
initialize
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
    67
    ConfirmationQuerySignal isNil ifTrue:[
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
    68
        ConfirmationQuerySignal := Query newSignal defaultAnswer:true.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
    69
    ].
2822
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    70
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    71
    "Modified: 31.7.1997 / 21:54:44 / cg"
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    72
! !
64829ed8f8c6 allow for conventions-dialog to be suppressed (offer a querySignal)
Claus Gittinger <cg@exept.de>
parents: 2700
diff changeset
    73
1742
e1ee359969f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1733
diff changeset
    74
!Metaclass class methodsFor:'creating metaclasses'!
356
claus
parents: 328
diff changeset
    75
claus
parents: 328
diff changeset
    76
new
claus
parents: 328
diff changeset
    77
    "creating a new metaclass - have to set the new classes
claus
parents: 328
diff changeset
    78
     flags correctly to have it behave like a metaclass ...
claus
parents: 328
diff changeset
    79
     Not for normal applications - creating new metaclasses is a very
claus
parents: 328
diff changeset
    80
     tricky thing; should be left to the gurus ;-)"
claus
parents: 328
diff changeset
    81
claus
parents: 328
diff changeset
    82
    |newMetaclass|
claus
parents: 328
diff changeset
    83
claus
parents: 328
diff changeset
    84
    newMetaclass := super new.
claus
parents: 328
diff changeset
    85
    newMetaclass instSize:(Class instSize).
claus
parents: 328
diff changeset
    86
    newMetaclass setSuperclass:Class.
claus
parents: 328
diff changeset
    87
claus
parents: 328
diff changeset
    88
    ^ newMetaclass
claus
parents: 328
diff changeset
    89
claus
parents: 328
diff changeset
    90
    "
claus
parents: 328
diff changeset
    91
     Metaclass new           <- new metaclass
claus
parents: 328
diff changeset
    92
     Metaclass new new       <- new class
claus
parents: 328
diff changeset
    93
     Metaclass new new new   <- new instance
claus
parents: 328
diff changeset
    94
    "
claus
parents: 328
diff changeset
    95
! !
claus
parents: 328
diff changeset
    96
1742
e1ee359969f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1733
diff changeset
    97
!Metaclass class methodsFor:'queries'!
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
    98
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
    99
asPrivate
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   100
    ^ PrivateMetaclass
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   101
!
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   102
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   103
isBuiltInClass
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   104
    "return true if this class is known by the run-time-system.
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   105
     Here, true is returned for myself, false for subclasses."
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   106
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   107
    ^ self == Metaclass class or:[self == Metaclass]
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   108
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   109
    "Modified: 23.4.1996 / 15:59:44 / cg"
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   110
! !
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   111
7261
f35fc9cee675 method category rename
Claus Gittinger <cg@exept.de>
parents: 6824
diff changeset
   112
!Metaclass methodsFor:'Compatibility-ST80'!
3012
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   113
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   114
comment:aString
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   115
    "ignored - sometimes found in ST-80 fileOut files.
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   116
     Comments are supposed to be defined via class messages."
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   117
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   118
    "Created: 9.10.1997 / 18:14:34 / cg"
3079
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   119
!
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   120
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   121
sourceCodeTemplate
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   122
    "ST80 compatibility - return a definition message for myself.
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   123
     Same as #definition"
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   124
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   125
    ^ self soleInstance definition
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   126
f177f98675c2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3049
diff changeset
   127
    "Created: / 1.11.1997 / 13:16:45 / cg"
3012
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   128
! !
25d64e4f2a4d added #comment:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
   129
17865
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   130
5578
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   131
!Metaclass methodsFor:'autoload check'!
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   132
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   133
isLoaded
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   134
    "return true, if the class has been loaded;
5578
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   135
     redefined in Autoload; see comment there"
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   136
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   137
    ^ myClass isLoaded
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   138
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   139
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   140
! !
16bfff464b2f added #isLoaded
Claus Gittinger <cg@exept.de>
parents: 5574
diff changeset
   141
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   142
!Metaclass methodsFor:'class instance variables'!
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   143
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   144
instanceVariableNames:aString
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   145
    "changing / adding class-inst vars -
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   146
     this actually creates a new metaclass and class, leaving the original
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   147
     classes around as obsolete classes. This may also be true for all subclasses,
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   148
     if class instance variables are added/removed.
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   149
     Existing instances continue to be defined by their original classes.
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   150
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   151
     Time will show, if this is an acceptable behavior or if we should migrate
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   152
     instances to become insts. of the new classes."
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   153
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   154
    |builder|
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   155
7518
298576c9de5a care for no real change in instanceVariableString.
Claus Gittinger <cg@exept.de>
parents: 7435
diff changeset
   156
    self instanceVariableString asStringCollection = aString asStringCollection ifTrue:[^ self].
298576c9de5a care for no real change in instanceVariableString.
Claus Gittinger <cg@exept.de>
parents: 7435
diff changeset
   157
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   158
    builder := ClassBuilder new.
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   159
    builder oldMetaclass:self instanceVariableNames:aString.
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   160
    builder rebuildForChangedInstanceVariables.
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   161
! !
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   162
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   163
!Metaclass methodsFor:'compiler interface'!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   164
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   165
browserClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   166
    "return the browser to use for this class -
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   167
     this can be redefined in special classes, to get different browsers"
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   168
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   169
    ^ UserPreferences systemBrowserClass.
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   170
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   171
    "Created: 3.5.1996 / 12:36:40 / cg"
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   172
!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   173
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   174
compilerClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   175
    "return the compiler to use for this class -
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   176
     this can be redefined in special classes, to compile classes with
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   177
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   178
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   179
    ^ self programmingLanguage compilerClass.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   180
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   181
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   182
     Array compilerClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   183
    "
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   184
!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   185
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   186
evaluatorClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   187
    "return the compiler to use for expression evaluation for this class -
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   188
     this can be redefined in special classes, to evaluate expressions with
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   189
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   190
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   191
    ^ self programmingLanguage evaluatorClass.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   192
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   193
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   194
     Array evaluatorClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   195
    "
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   196
!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   197
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   198
formatterClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   199
    "return the parser to use for formatting (prettyPrinting) this class -
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   200
     this can be redefined in special classes, to format classes with
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   201
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   202
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   203
    ^ self programmingLanguage formatterClass.
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   204
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   205
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   206
     Array formatterClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   207
    "
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   208
!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   209
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   210
parserClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   211
    "return the parser to use for parsing this class -
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   212
     this can be redefined in special classes, to parse classes with
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   213
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   214
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   215
    ^ self programmingLanguage parserClass.
17727
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   216
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   217
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   218
     Array parserClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   219
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   220
!
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   221
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   222
programmingLanguage
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   223
    "return the programming language in which this class is written"
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   224
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   225
    ^ SmalltalkLanguage instance
17727
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   226
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   227
    "Created: / 15-08-2009 / 09:06:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   228
    "Modified: / 16-08-2009 / 10:37:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   229
!
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   230
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   231
realSubclassDefinerClass
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   232
    ^ self evaluatorClass
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   233
!
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   234
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   235
subclassDefinerClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   236
    "Answer an evaluator class appropriate for evaluating definitions of new
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   237
     subclasses of this class."
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   238
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   239
    ^ self evaluatorClass
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   240
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   241
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   242
!
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   243
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   244
syntaxHighlighterClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   245
    "return the class to use for syntaxHighlighting (prettyPrinting) this class -
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   246
     this can be redefined in special classes, to highlight classes with
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   247
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   248
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   249
    ^ self programmingLanguage syntaxHighlighterClass.
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   250
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   251
    "
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   252
     Array syntaxHighlighterClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   253
    "
5994
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   254
! !
554530710162 allow metaclass to specify compiler, parser, evaluator etc.
Claus Gittinger <cg@exept.de>
parents: 5891
diff changeset
   255
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   256
!Metaclass methodsFor:'copying'!
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   257
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   258
postCopy
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   259
    "redefined - a copy may have a new instance"
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   260
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   261
    myClass := nil
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   262
! !
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   263
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   264
!Metaclass methodsFor:'creating classes'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   265
10475
acc087c36c83 documentation only
Claus Gittinger <cg@exept.de>
parents: 9712
diff changeset
   266
name:newName inEnvironment:aNameSpaceOrOwningClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   267
	     subclassOf:aClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   268
	     instanceVariableNames:stringOfInstVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   269
	     variable:variableBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   270
	     words:wordsBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   271
	     pointers:pointersBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   272
	     classVariableNames:stringOfClassVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   273
	     poolDictionaries:stringOfPoolNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   274
	     category:categoryString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   275
	     comment:commentString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   276
	     changed:changed
6824
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   277
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   278
    ^ self
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   279
	name:newName
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   280
	inEnvironment:aNameSpaceOrOwningClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   281
	subclassOf:aClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   282
	instanceVariableNames:stringOfInstVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   283
	variable:variableBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   284
	words:wordsBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   285
	pointers:pointersBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   286
	classVariableNames:stringOfClassVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   287
	poolDictionaries:stringOfPoolNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   288
	category:categoryString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   289
	comment:commentString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   290
	changed:changed
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   291
	classInstanceVariableNames:nil
6824
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   292
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   293
    "Modified: 16.6.1997 / 11:53:58 / cg"
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   294
!
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   295
10475
acc087c36c83 documentation only
Claus Gittinger <cg@exept.de>
parents: 9712
diff changeset
   296
name:newName inEnvironment:aNameSpaceOrOwningClass
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   297
	     subclassOf:aClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   298
	     instanceVariableNames:stringOfInstVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   299
	     variable:variableBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   300
	     words:wordsBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   301
	     pointers:pointersBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   302
	     classVariableNames:stringOfClassVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   303
	     poolDictionaries:stringOfPoolNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   304
	     category:categoryString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   305
	     comment:commentString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   306
	     changed:changed
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   307
	     classInstanceVariableNames:stringOfClassInstVarNamesOrNil
1439
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   308
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   309
    "this is the main workhorse for installing new classes - special care
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   310
     has to be taken, when changing an existing classes definition. In this
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   311
     case, some or all of the methods and subclasses methods have to be
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   312
     recompiled.
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   313
     Also, the old class(es) are still kept (but not accessable as a global),
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   314
     to allow existing instances some life.
1439
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   315
     This might change in the future.
d8a58d20a93c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1416
diff changeset
   316
    "
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   317
    |builder|
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   318
6516
68fdff63c92b allow for classBuilder to be provided by subclasses
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
   319
    builder := self newClassBuilder.
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   320
    builder name:newName
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   321
	inEnvironment:aNameSpaceOrOwningClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   322
	subclassOf:aClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   323
	instanceVariableNames:stringOfInstVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   324
	variable:variableBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   325
	words:wordsBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   326
	pointers:pointersBoolean
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   327
	classVariableNames:stringOfClassVarNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   328
	poolDictionaries:stringOfPoolNames
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   329
	category:categoryString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   330
	comment:commentString
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   331
	changed:changed
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   332
	classInstanceVariableNames:stringOfClassInstVarNamesOrNil.
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   333
    ^ builder buildClass.
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   334
!
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   335
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   336
new
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   337
    "create & return a new metaclass (a classes class).
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   338
     Since metaclasses only have one instance (the class),
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   339
     complain if there is already one.
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   340
     You get a new class by sending #new to the returned metaclass
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   341
     (confusing - isn't it ?)"
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   342
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   343
    |newClass|
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   344
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   345
    myClass notNil ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   346
	self error:'Each metaclass may only have one instance'.
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   347
    ].
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   348
    newClass := self basicNew.
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   349
    newClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   350
	setSuperclass:Object
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   351
	methodDictionary:(MethodDictionary new)
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   352
	instSize:0
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   353
	flags:(Behavior flagBehavior).
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   354
    myClass := newClass.
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   355
    ^ newClass
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   356
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   357
    "Modified: 1.4.1997 / 15:44:50 / stefan"
6516
68fdff63c92b allow for classBuilder to be provided by subclasses
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
   358
!
68fdff63c92b allow for classBuilder to be provided by subclasses
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
   359
68fdff63c92b allow for classBuilder to be provided by subclasses
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
   360
newClassBuilder
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   361
    ^ ClassBuilder new metaclass:self class.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   362
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   363
5562
76675d5a0da9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5515
diff changeset
   364
!Metaclass methodsFor:'enumerating'!
76675d5a0da9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5515
diff changeset
   365
6078
13d651d69246 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 6021
diff changeset
   366
instAndClassSelectorsAndMethodsDo:aTwoArgBlock
13d651d69246 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 6021
diff changeset
   367
    myClass instAndClassSelectorsAndMethodsDo:aTwoArgBlock
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   368
!
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   369
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   370
subclassesDo:aBlock
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   371
    "evaluate the argument, aBlock for all immediate subclasses.
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   372
     This will only enumerate globally known classes - for anonymous
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   373
     behaviors, you have to walk over all instances of Behavior."
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   374
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   375
    "metaclasses are not found via Smalltalk allClassesDo:
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   376
     here, walk over classes and enumerate corresponding metas"
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   377
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   378
    self soleInstance subclassesDo:[:aSubClass |
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   379
	aBlock value:aSubClass class
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   380
    ].
5562
76675d5a0da9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5515
diff changeset
   381
! !
76675d5a0da9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5515
diff changeset
   382
3640
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   383
!Metaclass methodsFor:'fileOut'!
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   384
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   385
basicFileOutDefinitionOf:aClass on:aStream withNameSpace:forceNameSpace withPackage:showPackage
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   386
    "append an expression on aStream, which defines myself."
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   387
8716
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   388
    |syntaxHilighting|
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   389
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   390
    UserPreferences isNil ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   391
	syntaxHilighting := false
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   392
    ] ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   393
	syntaxHilighting := UserPreferences current syntaxColoring.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   394
    ].
8716
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   395
    self
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   396
	basicFileOutDefinitionOf:aClass
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   397
	on:aStream
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   398
	withNameSpace:forceNameSpace
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   399
	withPackage:showPackage
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   400
	syntaxHilighting:syntaxHilighting
8716
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   401
!
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   402
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   403
basicFileOutDefinitionOf:aClass on:aStream withNameSpace:forceNameSpace withPackage:showPackage syntaxHilighting:syntaxHilighting
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   404
    "append an expression on aStream, which defines myself."
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   405
9fe96eaed619 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
   406
    |s owner ns nsName fullName forceNoNameSpace superNameWithoutNameSpacePrefix cls topOwner
9689
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   407
     superclass superclassNamespace nm useStoreString boldOn boldOff pkg|
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   408
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   409
    syntaxHilighting ifTrue:[
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   410
        boldOn := [aStream bold].
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   411
        boldOff := [aStream normal].
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   412
    ].
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   413
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   414
    fullName := FileOutNameSpaceQuerySignal query == true.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   415
    owner := aClass owningClass.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   416
    ns := aClass topNameSpace.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   417
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   418
    (showPackage and:[owner isNil]) ifTrue:[
9689
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   419
        pkg := aClass getPackage.
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   420
        (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
9689
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   421
            aStream nextPutAll:'"{ Package: '''.
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   422
            aStream nextPutAll:aClass package asString.
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   423
            aStream nextPutAll:''' }"'; cr; cr.
6213791d1760 do not store NoProject-classes (leave them unspecified in the source)
Claus Gittinger <cg@exept.de>
parents: 9197
diff changeset
   424
        ]
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   425
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   426
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   427
    "/ the backward compatible namespace directive is only used
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   428
    "/ for non-private classes.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   429
    "/ Private classes cannot be filed into another smalltalk anyway,
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   430
    "/ and there is no need to complicate global lookup in stc...
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   431
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   432
    owner notNil ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   433
        forceNoNameSpace := ForceNoNameSpaceQuerySignal query == true.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   434
        forceNoNameSpace ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   435
            fullName := true.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   436
        ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   437
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   438
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   439
    fullName ifFalse:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   440
        (owner isNil or:[forceNameSpace]) ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   441
            (ns notNil and:[ns ~~ Smalltalk]) ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   442
                nsName := ns name.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   443
                (nsName includes:$:) ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   444
                    nsName := '''' , nsName , ''''
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   445
                ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   446
                aStream nextPutAll:'"{ NameSpace: '.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   447
                boldOn value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   448
                aStream nextPutAll:nsName.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   449
                boldOff value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   450
                aStream nextPutAll:' }"'; cr; cr.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   451
            ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   452
        ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   453
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   454
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   455
    "take care of nil-superclass"
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   456
    superclass := aClass superclass.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   457
    superclass isNil ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   458
        s := 'nil'
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   459
    ] ifFalse:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   460
        superclassNamespace := superclass nameSpace.
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   461
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   462
        "/ be careful: if the superclasses ns is Smalltalk,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   463
        "/ AND this is the definition of a private class,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   464
        "/ AND a private class with the same name as my superclas
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   465
        "/ exists in my owning class,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   466
        "/ THEN we MUST add the smalltalk-prefix.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   467
        "/ (otherwise, we get the private class as superclass when accepting the
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   468
        "/  next time)
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   469
        (owner notNil
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   470
        and:[ superclassNamespace == Smalltalk
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   471
        and:[ (owner privateClassesAt:superclass name) notNil ]]) ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   472
            s := superclass nameWithNameSpacePrefix.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   473
        ] ifFalse:[
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   474
            fullName ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   475
                s := superclass name.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   476
            ] ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   477
                (ns == superclassNamespace
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   478
                and:[superclass owningClass isNil]) ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   479
                    "/ superclass is in the same namespace and not private;
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   480
                    "/ still prepend namespace prefix for private classes,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   481
                    "/  to avoid confusing stc, which needs that information.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   482
                    "/ LATE note (AUG2002) - no longer; stc was fixed.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   483
"/                owner notNil ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   484
"/                    s := superclass name
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   485
"/                ] ifFalse:[
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   486
                        s := superclass nameWithoutPrefix
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   487
"/                ]
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   488
                ] ifFalse:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   489
                    "/ a very special (rare) situation:
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   490
                    "/ my superclass resides in another nameSpace,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   491
                    "/ but there is something else named like this
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   492
                    "/ to be found in my nameSpace (or a private class)
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   493
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   494
                    superNameWithoutNameSpacePrefix := superclass nameWithoutNameSpacePrefix asSymbol.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   495
                    cls := aClass privateClassesAt:superNameWithoutNameSpacePrefix.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   496
                    cls isNil ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   497
                        (topOwner := aClass topOwningClass) isNil ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   498
                            ns := aClass nameSpace.
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   499
                            ns notNil ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   500
                                cls := ns privateClassesAt:superNameWithoutNameSpacePrefix
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   501
                            ] ifFalse:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   502
                                "/ aClass error:'unexpected nil namespace'
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   503
                            ]
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   504
                        ] ifFalse:[
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   505
                            cls := topOwner nameSpace at:superNameWithoutNameSpacePrefix.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   506
                        ]
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   507
                    ].
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   508
                    (cls notNil and:[cls ~~ superclass]) ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   509
                        s := superclassNamespace name , '::' , superNameWithoutNameSpacePrefix
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   510
                    ] ifFalse:[
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   511
                        "/ no class with that name found in my namespace ...
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   512
                        "/ if the superclass resides in Smalltalk,
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   513
                        "/ suppress prefix; otherwise, use full prefix.
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   514
                        (superclassNamespace notNil
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   515
                         and:[superclassNamespace ~~ Smalltalk]) ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   516
                            (owner notNil
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   517
                             and:[(topOwner := owner topOwningClass) notNil
10740
Claus Gittinger <cg@exept.de>
parents: 10739
diff changeset
   518
                             and:[superclass topOwningClass notNil
Claus Gittinger <cg@exept.de>
parents: 10739
diff changeset
   519
                             and:[topOwner nameSpace == superclass topOwningClass "owningClass" nameSpace]
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   520
                            ]]) ifTrue:[
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   521
                                s := superNameWithoutNameSpacePrefix
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   522
                            ] ifFalse:[
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   523
                                ns == superclass topNameSpace ifTrue:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   524
                                    s := superNameWithoutNameSpacePrefix
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   525
                                ] ifFalse:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   526
                                    s := superclass name
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   527
                                ]
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   528
                            ]
9197
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   529
                        ] ifFalse:[
e900514c8065 superclass name again
Claus Gittinger <cg@exept.de>
parents: 9175
diff changeset
   530
                            s := superNameWithoutNameSpacePrefix
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   531
                        ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   532
                    ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   533
                ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   534
            ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   535
        ]
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   536
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   537
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   538
    boldOn value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   539
    aStream nextPutAll:s.   "/ superclass
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   540
    boldOff value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   541
    aStream space.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   542
    aClass basicFileOutInstvarTypeKeywordOn:aStream.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   543
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   544
    useStoreString := false.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   545
    (fullName and:[owner isNil]) ifTrue:[
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   546
        nm := aClass name.
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   547
        useStoreString := true.
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   548
    ] ifFalse:[
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   549
        nm := aClass nameWithoutPrefix.
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   550
        nm isValidSmalltalkIdentifier ifFalse:[
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   551
            useStoreString := true.
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   552
        ].
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   553
    ].
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   554
    aStream nextPut:$#.
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   555
    useStoreString ifTrue:[
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   556
        aStream nextPutAll:''''.
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   557
    ].
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   558
    boldOn value.
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   559
    aStream nextPutAll:nm.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   560
    boldOff value.
8765
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   561
    useStoreString ifTrue:[
97227ad9480c care for non-valid classnames (spaces in name)
Claus Gittinger <cg@exept.de>
parents: 8716
diff changeset
   562
        aStream nextPutAll:''''.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   563
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   564
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   565
    aStream crtab.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   566
    aStream nextPutAll:'instanceVariableNames:'''.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   567
    boldOn value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   568
    aClass printInstVarNamesOn:aStream indent:16.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   569
    boldOff value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   570
    aStream nextPutAll:''''.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   571
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   572
    aStream crtab.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   573
    aStream nextPutAll:'classVariableNames:'''.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   574
    boldOn value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   575
    aClass printClassVarNamesOn:aStream indent:16.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   576
    boldOff value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   577
    aStream nextPutAll:''''.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   578
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   579
    aStream crtab.
8551
de314b9f8fa3 sharedPools
ca
parents: 8277
diff changeset
   580
    aStream nextPutAll:'poolDictionaries:'''.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   581
    boldOn value.
8551
de314b9f8fa3 sharedPools
ca
parents: 8277
diff changeset
   582
    aClass printSharedPoolNamesOn:aStream indent:16.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   583
    boldOff value.
8551
de314b9f8fa3 sharedPools
ca
parents: 8277
diff changeset
   584
    aStream nextPutAll:''''.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   585
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   586
    aStream crtab.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   587
    owner isNil ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   588
        "/ a public class
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   589
        aStream nextPutAll:'category:'.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   590
        aClass category isNil ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   591
            s := ''''''
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   592
        ] ifFalse:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   593
            s := aClass category asString storeString
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   594
        ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   595
        aStream nextPutAll:s.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   596
    ] ifFalse:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   597
        "/ a private class
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   598
        aStream nextPutAll:'privateIn:'.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   599
        boldOn value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   600
        fullName ifTrue:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   601
            s := owner name.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   602
        ] ifFalse:[
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   603
            s := owner nameWithoutNameSpacePrefix.
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   604
        ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   605
        aStream nextPutAll:s.
9175
2d009bbc418b care for definition of a class, where the superclass
Claus Gittinger <cg@exept.de>
parents: 8765
diff changeset
   606
        boldOff value.
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   607
    ].
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   608
    aStream cr
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   609
10739
9602cd5ad8a0 changed #basicFileOutDefinitionOf:on:withNameSpace:withPackage:syntaxHilighting:
Claus Gittinger <cg@exept.de>
parents: 10475
diff changeset
   610
    "Created: / 04-01-1997 / 20:38:16 / cg"
9602cd5ad8a0 changed #basicFileOutDefinitionOf:on:withNameSpace:withPackage:syntaxHilighting:
Claus Gittinger <cg@exept.de>
parents: 10475
diff changeset
   611
    "Modified: / 18-03-1999 / 18:15:46 / stefan"
10740
Claus Gittinger <cg@exept.de>
parents: 10739
diff changeset
   612
    "Modified: / 08-10-2007 / 13:28:59 / cg"
7617
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   613
!
a557bbe96ef1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7518
diff changeset
   614
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   615
fileOutClassInstVarDefinitionOn:aStream withNameSpace:withNameSpace
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   616
    "append an expression to define my classInstanceVariables on aStream"
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   617
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   618
    |anySuperClassInstVar|
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   619
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   620
    myClass isLoaded ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   621
	^ myClass basicFileOutDefinitionOn:aStream withNameSpace:withNameSpace
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   622
    ].
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   623
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   624
    withNameSpace ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   625
	myClass name printOn:aStream.
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   626
    ] ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   627
	myClass printClassNameOn:aStream.
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   628
    ].
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   629
    aStream nextPutAll:' class instanceVariableNames:'''.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   630
    self printInstVarNamesOn:aStream indent:8.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   631
    aStream nextPutAll:''''.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   632
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   633
    "mhmh - good idea; saw this in SmallDraw sourcecode ..."
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   634
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   635
    anySuperClassInstVar := false.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   636
    myClass allSuperclassesDo:[:aSuperClass |
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   637
	aSuperClass class instVarNames do:[:ignored | anySuperClassInstVar := true].
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   638
    ].
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   639
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   640
    aStream cr; cr; nextPut:(Character doubleQuote); cr; space.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   641
    anySuperClassInstVar ifFalse:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   642
	aStream
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   643
	    nextPutLine:'No other class instance variables are inherited by this class.'.
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   644
    ] ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   645
	aStream
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   646
	    nextPutLine:'The following class instance variables are inherited by this class:'.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   647
	aStream cr.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   648
	myClass allSuperclassesDo:[:aSuperClass |
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   649
	    aStream tab; nextPutAll:aSuperClass name; nextPutAll:' - '.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   650
	    aStream nextPutLine:(aSuperClass class instanceVariableString).
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   651
	].
8277
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   652
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   653
    ].
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   654
    aStream nextPut:(Character doubleQuote); cr.
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   655
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   656
    "Created: / 10.12.1995 / 16:31:25 / cg"
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   657
    "Modified: / 1.4.1997 / 16:00:33 / stefan"
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   658
    "Modified: / 3.2.2000 / 23:05:28 / cg"
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   659
!
357428ca03c5 classInstVar definition string (for non-ST metaclasses)
Claus Gittinger <cg@exept.de>
parents: 8228
diff changeset
   660
3640
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   661
fileOutDefinitionOn:aStream
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   662
    myClass fileOutClassInstVarDefinitionOn:aStream
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   663
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   664
    "Modified: / 21.6.1998 / 04:10:02 / cg"
8228
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   665
!
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   666
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   667
fileOutOn:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   668
    "file out my definition and all methods onto aStream.
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   669
     If stampIt is true, a timeStamp comment is prepended.
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   670
     If initIt is true, and the class implements a class-initialize method,
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   671
     append a corresponding doIt expression for initialization.
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   672
     The order by which the fileOut is done is used to put the version string at the end.
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   673
     Thus, if the version string is expanded (by CVS), the characterPositions of methods should not move"
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   674
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   675
    self programmingLanguage sourceFileWriterClass new
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   676
        fileOut:myClass on:outStreamArg withTimeStamp:stampIt
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   677
        withInitialize:initIt withDefinition:withDefinition
8228
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   678
        methodFilter:methodFilter encoder:encoderOrNil
3640
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   679
! !
523d80dfc3ac added #fileOutDefinitionOn: (show c-instVars) for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 3629
diff changeset
   680
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   681
!Metaclass methodsFor:'method templates'!
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   682
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   683
versionMethodTemplateForSourceCodeManager:aSourceCodeManager
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   684
    ^ aSourceCodeManager versionMethodTemplateForSmalltalk
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   685
! !
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   686
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   687
!Metaclass methodsFor:'misc ui support'!
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   688
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   689
iconInBrowserSymbol
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   690
    "can be redefined for a private icon in the browser.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   691
     The returned symbol must be a selector of the ToolbarIconLibrary."
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   692
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   693
    ^ nil
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   694
! !
17727
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   695
1875
215b61efaae9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1835
diff changeset
   696
!Metaclass methodsFor:'private'!
68
59faa75185ba *** empty log message ***
claus
parents: 49
diff changeset
   697
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   698
setSoleInstance:aClass
6021
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   699
    myClass := aClass
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   700
3fe69dd0d081 Use ClassBuilder
Claus Gittinger <cg@exept.de>
parents: 5994
diff changeset
   701
    "Created: 12.12.1995 / 13:46:22 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   702
! !
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   703
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   704
!Metaclass methodsFor:'queries'!
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   705
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   706
category
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   707
    "return my category"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   708
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   709
    myClass isNil ifTrue:[^ nil].
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   710
    ^ myClass category
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   711
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   712
    "Created: 2.4.1997 / 00:46:11 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   713
!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   714
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   715
comment
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   716
    "return my comment"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   717
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   718
    ^ myClass comment
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   719
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   720
    "Created: 2.4.1997 / 00:51:35 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   721
!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   722
9712
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   723
getPackage
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   724
    "return my package-id"
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   725
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   726
    ^ myClass getPackage
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   727
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   728
    "Created: 15.10.1996 / 19:44:51 / cg"
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   729
!
02d0e21d6c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9695
diff changeset
   730
5574
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   731
hasExtensions
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   732
    "return true if I have extensions"
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   733
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   734
    ^ myClass hasExtensions
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   735
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   736
!
0fa555d3a5a9 #hasExtensions query
Claus Gittinger <cg@exept.de>
parents: 5562
diff changeset
   737
5659
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   738
hasExtensionsFrom:aPackageID
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   739
    "return true if I have extensions from a package"
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   740
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   741
    ^ myClass hasExtensionsFrom:aPackageID
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   742
!
58a0b506f1e1 added #hasExtensionsFrom:
Claus Gittinger <cg@exept.de>
parents: 5630
diff changeset
   743
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   744
isBuiltInClass
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   745
    "return true if this class is known by the run-time-system.
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   746
     Here, true is returned for myself, false for subclasses."
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   747
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   748
    ^ self == Metaclass class or:[self == Metaclass]
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   749
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   750
    "Created: 15.4.1996 / 17:17:34 / cg"
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
   751
    "Modified: 23.4.1996 / 15:59:37 / cg"
1179
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   752
!
3e0f32177af4 allow subclasses of Class to be changed
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
   753
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   754
isMeta
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   755
    "return true, if the receiver is some kind of metaclass;
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   756
     true is returned here. Redefines isMeta in Object"
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   757
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   758
    ^ true
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   759
!
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   760
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   761
name
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   762
    "return my name - that is the name of my sole class, with ' class'
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   763
     appended."
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   764
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   765
    |nm|
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   766
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   767
    myClass isNil ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   768
	^ #someMetaclass
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   769
    ].
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   770
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   771
    (nm := myClass name) isNil ifTrue:[
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   772
	'Metaclass [warning]: no name in my class' errorPrintCR.
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   773
	^ #'unnamed class'
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   774
    ].
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   775
    ^ nm , ' class'
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   776
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   777
    "Modified: 10.1.1997 / 17:55:08 / cg"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   778
    "Modified: 1.4.1997 / 15:53:11 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   779
!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   780
1920
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   781
nameSpace
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   782
    "return the nameSpace I am contained in.
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   783
     Due to the implementation of nameSpaces (as classVariables),
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   784
     a class can only be contained in one nameSpace (which is the desired)"
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   785
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   786
    "/ this information is in the class
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   787
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   788
    ^ myClass nameSpace
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   789
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   790
    "Created: 7.11.1996 / 13:18:52 / cg"
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   791
!
6178e0048794 added namespace query
Claus Gittinger <cg@exept.de>
parents: 1916
diff changeset
   792
1724
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   793
owningClass
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   794
    "return nil here - regular metaclasses are never private"
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   795
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   796
    ^ nil
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   797
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   798
    "Created: 12.10.1996 / 20:12:16 / cg"
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   799
!
ef3f680996db support for private classes
Claus Gittinger <cg@exept.de>
parents: 1698
diff changeset
   800
1757
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   801
package
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   802
    "return my package-id"
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   803
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   804
    ^ myClass package
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   805
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   806
    "Created: 15.10.1996 / 19:44:51 / cg"
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   807
!
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1752
diff changeset
   808
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   809
soleInstance
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   810
    "return my sole class."
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   811
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   812
    ^ myClass
2047
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   813
!
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   814
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   815
subclasses
17757
73caeb68bf1f Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17735
diff changeset
   816
    "ask my non-meta for subclasses"
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   817
17757
73caeb68bf1f Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17735
diff changeset
   818
    ^ myClass subclasses collect:[:theNonMetaClass | theNonMetaClass class].
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   819
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   820
    "
17757
73caeb68bf1f Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17735
diff changeset
   821
     Integer class subclasses
7435
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   822
    "
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   823
!
c5afb1b0fd1b Prepare for moving of SubclassInfo to subclass instcar in Class
Stefan Vogel <sv@exept.de>
parents: 7261
diff changeset
   824
5217
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   825
theMetaclass
9695
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   826
    "return the metaClass of the class-meta pair.
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   827
     Here, return myself, because I am the metaclass.
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   828
     Also implemented in my class, which also returns me."
5217
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   829
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   830
    ^ self
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   831
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   832
    "Created: / 30.1.2000 / 23:08:15 / cg"
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   833
    "Modified: / 31.1.2000 / 16:15:00 / cg"
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   834
!
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   835
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   836
theNonMetaclass
9695
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   837
    "return the nonMetaClass of the class-meta pair.
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   838
     Here, return my class object, because I am the metaclass.
50d764d178d1 comment
Claus Gittinger <cg@exept.de>
parents: 9689
diff changeset
   839
     Also implemented in my class, which returns itself."
5217
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   840
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   841
    ^ self soleInstance
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   842
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   843
    "Created: / 30.1.2000 / 23:08:11 / cg"
5218
603197cdcfe9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5217
diff changeset
   844
    "Modified: / 31.1.2000 / 16:17:02 / cg"
5217
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   845
!
3f9682e47725 added #theNonMetaclass & #theMetaclass,
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   846
2047
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   847
topOwningClass
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   848
    "return nil here - regular metaclasses are never private"
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   849
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   850
    ^ nil
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   851
8150a3ae6fa0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2039
diff changeset
   852
    "Created: 3.1.1997 / 19:18:06 / cg"
457
41c73cbee305 change classes versionString when class changes (prepare for sourceCode system)
Claus Gittinger <cg@exept.de>
parents: 423
diff changeset
   853
! !
621
87602c9d071c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
   854
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   855
!Metaclass methodsFor:'source management'!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   856
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   857
binaryRevision
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   858
    ^ myClass binaryRevision
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   859
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   860
    "
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   861
     Object binaryRevision
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   862
     Object class binaryRevision
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   863
    "
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   864
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   865
    "Modified: 2.4.1997 / 01:17:04 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   866
!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   867
17845
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   868
binaryRevisionString
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   869
    ^ myClass binaryRevisionString
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   870
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   871
    "
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   872
     Object binaryRevisionString
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   873
     Object class binaryRevisionString
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   874
    "
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   875
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   876
    "Modified: / 02-04-1997 / 01:17:04 / stefan"
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   877
    "Created: / 01-07-2011 / 10:55:39 / cg"
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   878
!
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   879
17880
360b58c69299 renamed & fixed sourceCodeManagerFromBinaryRevision
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17878
diff changeset
   880
sourceCodeManagerFromBinaryRevision
17878
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17869
diff changeset
   881
17880
360b58c69299 renamed & fixed sourceCodeManagerFromBinaryRevision
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17878
diff changeset
   882
    ^ myClass sourceCodeManagerFromBinaryRevision
17878
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17869
diff changeset
   883
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17869
diff changeset
   884
    "Modified: / 01-04-1997 / 14:36:31 / stefan"
17880
360b58c69299 renamed & fixed sourceCodeManagerFromBinaryRevision
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17878
diff changeset
   885
    "Created: / 06-10-2011 / 09:34:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17878
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17869
diff changeset
   886
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17869
diff changeset
   887
8228
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   888
sourceFileSuffix
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   889
    ^ self programmingLanguage sourceFileSuffix
17727
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   890
3945dfe4659c multilanguage improvements mainly for loading projects with
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   891
    "Modified: / 15-08-2009 / 22:46:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
17845
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   892
    "Modified: / 28-06-2011 / 13:44:36 / cg"
8228
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   893
!
cd5c696619a3 use chunkfilewriter for fileOut
ca
parents: 7617
diff changeset
   894
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   895
sourceStream
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   896
    "return the classes source stream"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   897
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   898
    ^ myClass sourceStream
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   899
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   900
    "Modified: 1.4.1997 / 14:36:31 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   901
!
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   902
4780
35deaaafd9b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4774
diff changeset
   903
sourceStreamFor:sourceFileName
35deaaafd9b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4774
diff changeset
   904
    "return the sourceStream for a sourceFileName"
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   905
4780
35deaaafd9b1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4774
diff changeset
   906
    ^ myClass sourceStreamFor:sourceFileName
2666
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   907
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   908
    "Modified: 1.4.1997 / 14:36:38 / stefan"
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   909
! !
7981b615b48a Make Metaclass a subclass of ClassDescription instead of Class.
Stefan Vogel <sv@exept.de>
parents: 2584
diff changeset
   910
1742
e1ee359969f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1733
diff changeset
   911
!Metaclass class methodsFor:'documentation'!
639
9ff94fa31be6 version at the end
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   912
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17727
diff changeset
   913
version_CVS
17845
7e0cfaac936d Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17841
diff changeset
   914
    ^ '§Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.210 2011/07/01 11:44:26 cg Exp §'
17865
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   915
!
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   916
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   917
version_SVN
17880
360b58c69299 renamed & fixed sourceCodeManagerFromBinaryRevision
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17878
diff changeset
   918
    ^ '$Id: Metaclass.st 10713 2011-10-06 09:18:54Z vranyj1 $'
639
9ff94fa31be6 version at the end
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   919
! !
6824
6fbe85d05646 ...in:... -> ...inEnvironment:...
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   920
17846
24edc476ac18 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17845
diff changeset
   921
Metaclass initialize!