MCClassDefinition.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 11 Jul 2023 12:13:27 +0100
branchjv
changeset 1173 e3dd2050492e
parent 1161 93b6422ff70f
permissions -rw-r--r--
Update class category to match package name if it does not This is needed because in Squeak / Pharo world package membership is defined by (class) category prefix. This is soo annoying...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
     1
"
1157
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
     2
COPYRIGHT (c) 2020-2022 LabWare
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
     3
"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/monticello' }"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
968
70b2a6241dd2 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
     6
"{ NameSpace: Smalltalk }"
70b2a6241dd2 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
     7
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
MCDefinition subclass:#MCClassDefinition
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
     9
	instanceVariableNames:'name superclassName variables category type comment commentStamp
894
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
    10
		traitComposition classTraitComposition'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	classVariableNames:''
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
	poolDictionaries:''
610
7760d3e2045c category change
Claus Gittinger <cg@exept.de>
parents: 565
diff changeset
    13
	category:'SCM-Monticello-Modeling'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    16
!MCClassDefinition class methodsFor:'documentation'!
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    17
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    18
copyright
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    19
"
1157
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
    20
COPYRIGHT (c) 2020-2022 LabWare
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    21
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    22
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    23
"
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
    24
! !
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!MCClassDefinition class methodsFor:'instance creation'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
commentStamp: stampString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	^ self instanceLike:
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
		(self new initializeWithName: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
					superclassName: superclassString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    41
					traitComposition: '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    42
					classTraitComposition: '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    43
					category: categoryString 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    44
					instVarNames: ivarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    45
					classVarNames: cvarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    46
					poolDictionaryNames: poolArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    47
					classInstVarNames: civarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    48
					type: typeSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    49
					comment: commentString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    50
					commentStamp: stampString)
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    51
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    52
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    53
name: nameString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    54
superclassName: superclassString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    55
traitComposition: traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    56
classTraitComposition: classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    57
category: categoryString 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    58
instVarNames: ivarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    59
classVarNames: cvarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    60
poolDictionaryNames: poolArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    61
classInstVarNames: civarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    62
type: typeSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    63
comment: commentString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    64
commentStamp: stampString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    65
	
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    66
	^ self instanceLike:
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    67
		(self new initializeWithName: nameString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    68
					superclassName: superclassString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    69
					traitComposition: traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    70
					classTraitComposition: classTraitCompositionString
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
					category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
					instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
					classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
					poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
					classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
					type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
					comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
					commentStamp: stampString)
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!MCClassDefinition class methodsFor:'obsolete'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	^ self	name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
			superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
			category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
			instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
			classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
			poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
			classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
			type: #normal
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
			comment: commentString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   100
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	^ self 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
		name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
		superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
		category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
		instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
		classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
		poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
		classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
		type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
		comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
		commentStamp: nil
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	^ self	name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
			superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
			category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
			instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
			classVarNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
			poolDictionaryNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
			classInstVarNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
			comment: commentString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   138
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
!MCClassDefinition methodsFor:'accessing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
actualClass
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
	^Smalltalk classNamed: self className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
category
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	^ category
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
848
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   151
category:something
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   152
    category := something.
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   153
!
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   154
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
classInstVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	^ self selectVariables: #isClassInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   159
classInstVarNames:civarArray
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   160
    self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   161
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   162
    "Created: / 25-11-2011 / 17:42:34 / cg"
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   163
!
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   164
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
	^ name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
876
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   169
className: aString
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   170
    name := aString
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   171
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   172
    "Created: / 31-05-2013 / 10:33:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   173
!
14ab9847bdda class: MCClassDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 848
diff changeset
   174
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   175
classTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   176
	^classTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   177
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   178
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   179
classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   180
	^self classTraitComposition ifNil: ['{}'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   181
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   182
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
classVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
	^ self selectVariables: #isClassVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
comment
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   188
        ^ comment ? ''
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   189
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   190
    "Modified: / 12-09-2010 / 17:07:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
1150
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   193
comment:something
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   194
    comment := something.
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   195
!
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   196
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   197
commentOrNil
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   198
        ^ comment
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   199
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   200
    "Created: / 17-09-2021 / 15:15:38 / Jan Vrany <jan.vrany@labware.com>"
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   201
!
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1140
diff changeset
   202
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
commentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
	^ commentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
description
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
	^ Array with: name
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   209
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
instVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
	^ self selectVariables: #isInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   216
installedClass
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   217
        ^Smalltalk classNamed: self installedClassName
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   218
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   219
    "Created: / 07-09-2011 / 13:33:10 / cg"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   220
!
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   221
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   222
installedClassName
894
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   223
    | installedClassName |
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   224
894
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   225
    installedClassName :=  self objectAttributeAt: #installedClassName.
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   226
    ^ installedClassName ? name
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   227
894
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   228
    "Created: / 07-09-2011 / 13:36:37 / cg"
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   229
    "Modified: / 12-08-2013 / 01:49:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   230
!
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   231
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   232
installedClassName:aString
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   233
    self objectAttributeAt: #installedClassName put: aString.
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   234
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   235
    "Modified: / 12-08-2013 / 01:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   236
!
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   237
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
poolDictionaries
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
	^ self selectVariables: #isPoolImport
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
selectVariables: aSelector
713
91c979b96e0a class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 610
diff changeset
   243
        variables isNil ifTrue:[^#()].
91c979b96e0a class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 610
diff changeset
   244
        ^ variables select: [:v | v perform: aSelector] thenCollect: [:v | v name]
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
sortKey
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
	^ self className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
superclassName
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
	^ superclassName
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
897
76481ea7aaba Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   255
superclassName:aStringOrSymbol
76481ea7aaba Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   256
    superclassName := aStringOrSymbol asSymbol.
76481ea7aaba Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   257
76481ea7aaba Bugfix: MCClassDefinition.superclassName must be a symbol.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 894
diff changeset
   258
    "Modified: / 20-09-2013 / 00:13:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
848
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   259
!
b86a6f467667 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 766
diff changeset
   260
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   261
traitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   262
	^traitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   263
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   264
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   265
traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   266
	^self traitComposition ifNil: ['{}'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   267
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   268
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
type
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
	^ type
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
variables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
	^ variables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
!MCClassDefinition methodsFor:'annotations'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
printAnnotations: requests on: aStream
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
	"Add a string for an annotation pane, trying to fulfill the annotation requests.
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
	These might include anything that
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
		Preferences defaultAnnotationRequests 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
	might return. Which includes anything in
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
		Preferences annotationInfo
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
	To edit these, use:"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
	"Preferences editAnnotations"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
	requests do: [ :aRequest |
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
		aRequest == #requirements ifTrue: [
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
			self requirements do: [ :req | aStream nextPutAll: req ] separatedBy: [ aStream space ]]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
	] separatedBy: [ aStream space ].
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
!MCClassDefinition methodsFor:'comparing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
hash
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
	| hash |
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   298
	hash := String stringHash: name initialHash: 0.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   299
	hash := String stringHash: superclassName initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   300
	hash := String stringHash: self traitCompositionString initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   301
	hash := String stringHash: self classTraitComposition asString initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   302
	hash := String stringHash: (category ifNil: ['']) initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   303
	hash := String stringHash: type initialHash: hash.
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
	variables do: [
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
		:v |
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   306
		hash := String stringHash: v name initialHash: hash.
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
	].
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
	^ hash
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
provisions
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
	^ Array with: name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
requirements
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
	^ (Array with: superclassName), self poolDictionaries
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   319
!MCClassDefinition methodsFor:'converting'!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   320
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   321
asChange
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   322
    |instVarNamesString classVarNamesString classInstVarNamesString poolDictionariesString
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   323
     definitionSelector|
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   324
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   325
    instVarNamesString := self instVarNames asStringWith:' '.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   326
    classVarNamesString := self classVarNames asStringWith:' '.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   327
    classInstVarNamesString := self classInstVarNames asStringWith:' '.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   328
    poolDictionariesString := self poolDictionaries asStringWith:' '.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   329
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   330
    definitionSelector := #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
713
91c979b96e0a class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 610
diff changeset
   331
    (type notNil and:[type ~~ #normal]) ifTrue:[
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   332
        type == #variable ifTrue:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   333
            definitionSelector := #'variableSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   334
        ] ifFalse:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   335
            type == #bytes ifTrue:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   336
                definitionSelector := #'variableByteSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   337
            ] ifFalse:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   338
                type == #words ifTrue:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   339
                    "for Squeak compatibility: that is long-words !!!!!!!!"
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   340
                    definitionSelector := #'variableLongSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   341
                ] ifFalse:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   342
                    type == #compiledMethod ifTrue:[
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   343
                        definitionSelector := #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   344
                    ] ifFalse:[
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   345
                        type == #weak ifTrue: [
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   346
                            "for Squeak compatibility only!!!!!!!!"
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   347
                            definitionSelector := #'variableSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.            
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   348
                        ] ifFalse: [
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   349
                            self error:'unhandled class-type'.
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   350
                        ]
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   351
                    ]
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   352
                ]
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   353
            ]
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   354
        ]
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   355
    ].
976
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   356
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   357
"/ does not work yet
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   358
"/    classInstVarNamesString notEmptyOrNil ifTrue:[
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   359
"/        definitionSelector := (definitionSelector , 'classInstanceVariableNames:') asSymbol
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   360
"/    ].
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   361
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   362
    ^ClassDefinitionChange new
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   363
        mcDefinition: self;
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   364
        definitionSelector: definitionSelector;
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   365
        className: name;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   366
        superClassName: superclassName;
968
70b2a6241dd2 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
   367
        instanceVariableString: instVarNamesString ;
70b2a6241dd2 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
   368
        classVariableString: classVarNamesString ;
969
e80717daf864 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 968
diff changeset
   369
        classInstanceVariableString: classInstVarNamesString ;
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   370
        poolDictionaries: poolDictionariesString ;
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   371
        category: category;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   372
        yourself
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   373
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   374
    "Created: / 13-10-2010 / 17:11:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   375
    "Modified: / 08-11-2010 / 17:56:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
565
4df955210a05 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 521
diff changeset
   376
    "Modified: / 13-06-2012 / 12:57:38 / cg"
1123
1bf6a20c9966 Tonel: various fixes here and there (part 3)
Jan Vrany <jan.vrany@labware.com>
parents: 1117
diff changeset
   377
    "Modified: / 07-07-2020 / 22:29:23 / Jan Vrany <jan.vrany@labware.com>"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   378
! !
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   379
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
!MCClassDefinition methodsFor:'initializing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
addVariables: aCollection ofType: aClass
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
	variables addAll: (aCollection collect: [:var | aClass name: var asString]).
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
defaultCommentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
	^ String new
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
	"The version below avoids stomping on stamps already in the image
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
	^ (Smalltalk at: name ifPresent: [:c | c organization commentStamp])
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
		ifNil: ['']
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
	"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   394
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
!MCClassDefinition methodsFor:'installing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
createClass
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   400
        "cg: changed to honor any nameSpace query override"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   401
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   402
        | env superClass class installedSuperclassName|
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   403
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   404
        env := MCStXNamespaceQuery query ? Smalltalk.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   405
        superClass := env at: superclassName.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   406
        (superClass isNil and:[env ~~ Smalltalk]) ifTrue:[
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   407
            superClass := Smalltalk at: superclassName.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   408
        ].
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   409
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   410
        "Create class if not exists"
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   411
        superClass isNil ifTrue:[
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   412
            installedSuperclassName := (env == Smalltalk)
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   413
                                            ifTrue:[ superclassName ]
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   414
                                            ifFalse:[ env name ,'::',superclassName].
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   415
            superClass := Class undeclared: installedSuperclassName
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   416
        ].
934
6a56a913c6b0 Fixed MCClassDefinition>>#createClass: load superclass before creating class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 897
diff changeset
   417
        superClass isLoaded ifFalse:[ superClass autoload ].
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   418
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   419
        "/ env := superClass environment. 
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   420
1139
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   421
        [
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   422
            class := (ClassBuilder new)
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   423
                            name: name 
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   424
                            inEnvironment: env
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   425
                            subclassOf: superClass
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   426
                            type: type 
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   427
                            instanceVariableNames: self instanceVariablesString 
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   428
                            classVariableNames: self classVariablesString 
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   429
                            poolDictionaries: self sharedPoolsString
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   430
                            category: category.
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   431
        ] on: ClassBuildWarning do:[:warning | 
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   432
            Logger warning: warning description.
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   433
            warning proceed.
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   434
        ].
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   435
894
0c981690a584 Removed instvar installedClassName and make it an object attribute.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 876
diff changeset
   436
        self installedClassName:class name.
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   437
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   438
        self traitComposition ifNotNil: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   439
                class setTraitComposition: (Compiler
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   440
                        evaluate: self traitComposition) asTraitComposition ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   441
        self classTraitComposition ifNotNil: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   442
                class class setTraitComposition: (Compiler
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   443
                        evaluate: self classTraitComposition) asTraitComposition ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   444
        ^class.
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   445
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   446
    "Modified (comment): / 07-09-2011 / 13:32:38 / cg"
934
6a56a913c6b0 Fixed MCClassDefinition>>#createClass: load superclass before creating class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 897
diff changeset
   447
    "Modified: / 07-10-2014 / 00:20:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1139
6e8835787bf7 Write class-definition warnings to log
Jan Vrany <jan.vrany@labware.com>
parents: 1123
diff changeset
   448
    "Modified: / 15-03-2021 / 11:34:47 / Jan Vrany <jan.vrany@labware.com>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
load
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   452
    | class |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   453
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   454
    (class := self createClass) notNil ifTrue:[
1114
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   455
        self classInstanceVariablesString notEmptyOrNil ifTrue: [
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   456
            class class instanceVariableNames: self classInstanceVariablesString.
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   457
            class := self actualClass.
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   458
        ].
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   459
        self hasComment ifTrue: [class classComment: comment stamp: commentStamp]
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   460
    ].
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   461
    class package: MCStXPackageQuery query.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   462
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   463
    "Modified: / 14-09-2010 / 22:10:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   464
    "Modified: / 07-09-2011 / 13:01:53 / cg"
1114
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   465
    "Modified: / 10-08-2020 / 12:40:03 / Jan Vrany <jan.vrany@labware.com>"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   466
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   467
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   468
stringForSortedVariablesOfType: aSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   469
	^ String streamContents:
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   470
		[:stream |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   471
		(self selectVariables: aSymbol) asSortedCollection
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   472
			do: [:ea | stream nextPutAll: ea]
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   473
			separatedBy: [stream space]]
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
stringForVariablesOfType: aSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
	^ String streamContents:
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
		[:stream |
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
		(self selectVariables: aSymbol) 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
			do: [:ea | stream nextPutAll: ea]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
			separatedBy: [stream space]]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
unload
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
	Smalltalk removeClassNamed: name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
!MCClassDefinition methodsFor:'printing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
classInstanceVariablesString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
	^ self stringForVariablesOfType: #isClassInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
classVariablesString
1161
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   495
        ^ self stringForVariablesOfType: #isClassVariable
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   496
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   497
    "Modified: / 27-07-2022 / 14:20:18 / Jan Vrany <jan.vrany@labware.com>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
definitionString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
	^ String streamContents: [:stream | self printDefinitionOn: stream]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
instanceVariablesString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
	^ self stringForVariablesOfType: #isInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
kindOfSubclass
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   509
        type = #normal ifTrue: [^ ' subclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   510
        type = #words ifTrue: [^ ' variableWordSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   511
        type = #variable ifTrue: [^ ' variableSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   512
        type = #bytes ifTrue: [^ ' variableByteSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   513
        type = #weak ifTrue: [^ ' weakSubclass:' ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   514
        type = #compiledMethod ifTrue: [^ ' variableByteSubclass:' ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   515
        self error: 'Unrecognized class type'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   516
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   517
    "Modified: / 11-09-2010 / 18:13:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
printDefinitionOn: stream
766
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   521
                |clsName|
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   522
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   523
                stream 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   524
                        nextPutAll: self superclassName;
766
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   525
                        nextPutAll: self kindOfSubclass.
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   526
                ((clsName := self className) includes:$_) ifTrue:[
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   527
                    stream 
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   528
                        nextPutAll: '#''' ;
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   529
                        nextPutAll: self className;
766
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   530
                        nextPutAll: '''' .
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   531
                ] ifFalse:[
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   532
                    stream 
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   533
                        nextPut: $#;
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   534
                        nextPutAll: self className.
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   535
                ].
94bc6e95d8b1 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   536
                stream
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   537
                        cr; tab.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   538
                self hasTraitComposition ifTrue: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   539
                        stream 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   540
                                nextPutAll: 'uses: ';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   541
                                nextPutAll: self traitCompositionString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   542
                                cr; tab ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   543
                stream
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   544
                        nextPutAll: 'instanceVariableNames:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   545
                        store: self instanceVariablesString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   546
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   547
                        nextPutAll: 'classVariableNames:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   548
                        store: self classVariablesString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   549
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   550
                        nextPutAll: 'poolDictionaries:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   551
                        store: self sharedPoolsString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   552
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   553
                        nextPutAll: 'category:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   554
                        store: self category asString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   555
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   556
    "Modified: / 11-09-2010 / 18:11:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
sharedPoolsString
1161
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   560
        ^ self stringForVariablesOfType: #isPoolImport
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   561
93b6422ff70f Do not sort class variables and pools when creating a class
Jan Vrany <jan.vrany@labware.com>
parents: 1157
diff changeset
   562
    "Modified: / 27-07-2022 / 14:20:23 / Jan Vrany <jan.vrany@labware.com>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
source
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
	^ self definitionString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
summary
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
	^ name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
1117
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   573
!MCClassDefinition methodsFor:'queries'!
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   574
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   575
requires: anMCDefinition
1157
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   576
    anMCDefinition isClassDefinition ifFalse:[ ^ false ].
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   577
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   578
    "/ Classes require their superclass
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   579
    superclassName = anMCDefinition className ifTrue: [ ^ true ].
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   580
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   581
    "/ Classes require their pool dictionaries
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   582
    variables do: [:variable | 
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   583
        (variable isPoolImport and: [ variable name = anMCDefinition className ]) 
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   584
            ifTrue: [ ^ true ]
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   585
    ].
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   586
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   587
    ^ false.
1117
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   588
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   589
    "Created: / 01-09-2020 / 16:28:48 / Jan Vrany <jan.vrany@labware.com>"
1157
239676f7cf96 Fix load ordering w.r.t pool dictionaries
Jan Vrany <jan.vrany@labware.com>
parents: 1156
diff changeset
   590
    "Modified: / 12-07-2022 / 16:34:30 / Jan Vrany <jan.vrany@labware.com>"
1117
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   591
! !
5287516fa71d Sort definition before loading
Jan Vrany <jan.vrany@labware.com>
parents: 1114
diff changeset
   592
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   593
!MCClassDefinition methodsFor:'serializing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
1140
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   595
initializeWithName: nameString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   596
superclassName: superclassString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   597
category: categoryString 
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   598
instVarNames: ivarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   599
classVarNames: cvarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   600
poolDictionaryNames: poolArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   601
classInstVarNames: civarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   602
type: typeSymbol
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   603
comment: commentString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   604
commentStamp: stampStringOrNil
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   605
        name := nameString asSymbol.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   606
        superclassName := superclassString ifNil: ['nil'] ifNotNil: [superclassString asSymbol].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   607
        category := categoryString.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   608
        name = #CompiledMethod ifTrue: [type := #compiledMethod] ifFalse: [type := typeSymbol].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   609
        comment := (commentString ? '') asStringWithSqueakLineEndings.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   610
        commentStamp := stampStringOrNil ifNil: [self defaultCommentStamp].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   611
        variables := OrderedCollection  new.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   612
        self addVariables: ivarArray ofType: MCInstanceVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   613
        self addVariables: cvarArray ofType: MCClassVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   614
        self addVariables: poolArray ofType: MCPoolImportDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   615
        self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   616
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   617
    "Modified: / 12-09-2010 / 17:09:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   618
!
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   619
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   620
storeDataOn: aDataStream
986
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   621
        | instVarSize |
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   622
        instVarSize := (self hasTraitComposition or: [ self hasClassTraitComposition ])
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   623
                ifTrue: [ self class instSize ]
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   624
                ifFalse: [ self class instSize - 2 ].
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   625
        aDataStream
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   626
                beginInstance: self class
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   627
                size: instVarSize.
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   628
        1 to: instVarSize do: [ :index |
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   629
                | value |
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   630
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   631
                value := (self instVarAt: index).
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   632
                "/ Special hack for ImmutableString / ImmutableArray which is not known by Squeak / Pharo,
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   633
                "/ and therefore will fail to load properly there.
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   634
                "/ In one of those is encountered, convert them to their mutable version.
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   635
                (value class == ImmutableString or:[value class == ImmutableArray or:[value class == ImmutableByteArray]]) ifTrue:[ 
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   636
                    value := value asMutableCollection.
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   637
                ].
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   638
                aDataStream nextPut: value 
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   639
        ].
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   640
d59dea3216cb Fix in binary serialization - never write ImmutableString/Array/ByteArray
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 976
diff changeset
   641
    "Modified: / 23-04-2015 / 14:33:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
!MCClassDefinition methodsFor:'testing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
hasClassInstanceVariables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
	^ (self selectVariables: #isClassInstanceVariable) isEmpty not
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   650
hasClassTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   651
	^self classTraitCompositionString ~= '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   652
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   653
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
hasComment
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   655
	^ comment isEmptyOrNil not
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   656
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   657
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   658
hasTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   659
	^self traitCompositionString ~= '{}'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
isClassDefinition
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
	^ true
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
isCodeDefinition
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
	^ true
1156
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   668
!
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   669
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   670
isManifestDefinition
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   671
    ^ (Smalltalk includesKey: superclassName asSymbol) 
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   672
        and: [ (Smalltalk at: superclassName asSymbol) inheritsFrom: ProjectDefinition ].
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   673
b6ca954ebfc9 Use custom Smalltalk/X package loader(s)
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   674
    "Created: / 29-11-2021 / 15:42:06 / Jan Vrany <jan.vrany@labware.com>"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
!MCClassDefinition methodsFor:'visiting'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   679
= aDefinition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   680
        ^super = aDefinition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   681
                and: [superclassName = aDefinition superclassName
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   682
                and: [self traitCompositionString = aDefinition traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   683
                and: [self classTraitCompositionString = aDefinition classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   684
                and: [category = aDefinition category
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   685
                and: [type = aDefinition type
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   686
                and: [variables = aDefinition variables
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   687
                and: [comment = aDefinition comment]]]]]]]
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   688
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   689
    "Modified: / 18-08-2009 / 10:19:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   690
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   691
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
accept: aVisitor
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   693
	aVisitor visitClassDefinition: self.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   694
	(self hasClassInstanceVariables or: [self hasClassTraitComposition])
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   695
		ifTrue: [aVisitor visitMetaclassDefinition: self].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   696
1140
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   697
!
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   698
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   699
initializeWithName: nameString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   700
superclassName: superclassString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   701
traitComposition: traitCompositionString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   702
classTraitComposition: classTraitCompositionString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   703
category: categoryString 
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   704
instVarNames: ivarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   705
classVarNames: cvarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   706
poolDictionaryNames: poolArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   707
classInstVarNames: civarArray
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   708
type: typeSymbol
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   709
comment: commentString
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   710
commentStamp: stampStringOrNil
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   711
        name := nameString asSymbol.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   712
        superclassName := superclassString ifNil: ['nil'] ifNotNil: [superclassString asSymbol].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   713
        traitComposition := traitCompositionString.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   714
        classTraitComposition := classTraitCompositionString.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   715
        category := categoryString.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   716
        name = #CompiledMethod ifTrue: [type := #compiledMethod] ifFalse: [type := typeSymbol].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   717
        comment := commentString isNil ifTrue:[ nil] ifFalse:[ commentString asStringWithSqueakLineEndings].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   718
        commentStamp := stampStringOrNil ifNil: [self defaultCommentStamp].
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   719
        variables := OrderedCollection  new.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   720
        self addVariables: ivarArray ofType: MCInstanceVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   721
        self addVariables: cvarArray ofType: MCClassVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   722
        self addVariables: poolArray ofType: MCPoolImportDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   723
        self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   724
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   725
    "Modified: / 12-09-2010 / 16:05:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61ddff836136 Oops, restored initialization methods accidentaly removed in previous commit.
Jan Vrany <jan.vrany@labware.com>
parents: 1139
diff changeset
   726
    "Modified: / 25-11-2011 / 17:30:38 / cg"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
!MCClassDefinition class methodsFor:'documentation'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
version
976
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   732
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.19 2015-03-01 01:06:15 cg Exp $'
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   733
!
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   734
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   735
version_CVS
976
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   736
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.19 2015-03-01 01:06:15 cg Exp $'
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   737
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   738
1114
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   739
version_HG
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   740
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   741
    ^ '$Changeset: <not expanded> $'
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   742
!
47360cc199f0 Fix `MCClassDefinition >> #load`
Jan Vrany <jan.vrany@labware.com>
parents: 986
diff changeset
   743
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   744
version_SVN
976
eba7baca1ed0 class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 969
diff changeset
   745
    ^ '$Id: MCClassDefinition.st,v 1.19 2015-03-01 01:06:15 cg Exp $'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
! !
713
91c979b96e0a class: MCClassDefinition
Claus Gittinger <cg@exept.de>
parents: 610
diff changeset
   747