MCClassDefinition.st
author Claus Gittinger <cg@exept.de>
Fri, 25 Nov 2011 17:46:22 +0100
changeset 521 ac7de5d52ead
parent 470 ce343aed87ed
child 565 4df955210a05
permissions -rw-r--r--
added: #classInstVarNames: changed: #initializeWithName:superclassName:traitComposition:classTraitComposition:category:instVarNames:classVarNames:poolDictionaryNames:classInstVarNames:type:comment:commentStamp:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCDefinition subclass:#MCClassDefinition
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
     4
	instanceVariableNames:'name superclassName variables category type comment commentStamp
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
     5
		traitComposition classTraitComposition installedClassName'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	classVariableNames:''
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	poolDictionaries:''
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	category:'Monticello-Modeling'
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!MCClassDefinition class methodsFor:'instance creation'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
commentStamp: stampString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ self instanceLike:
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		(self new initializeWithName: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
					superclassName: superclassString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    27
					traitComposition: '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    28
					classTraitComposition: '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    29
					category: categoryString 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    30
					instVarNames: ivarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    31
					classVarNames: cvarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    32
					poolDictionaryNames: poolArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    33
					classInstVarNames: civarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    34
					type: typeSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    35
					comment: commentString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    36
					commentStamp: stampString)
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    37
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    38
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    39
name: nameString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    40
superclassName: superclassString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    41
traitComposition: traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    42
classTraitComposition: classTraitCompositionString
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
	^ self instanceLike:
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    53
		(self new initializeWithName: 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
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
					category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
					instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
					classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
					poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
					classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
					type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
					comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
					commentStamp: stampString)
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!MCClassDefinition class methodsFor:'obsolete'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
superclassName: superclassString
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
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	^ self	name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
			superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
			category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
			instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
			classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
			poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
			classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
			type: #normal
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
			comment: commentString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
    86
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
	^ self 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
		name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
		superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
		category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
		instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
		poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
		classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
		type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
		comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
		commentStamp: nil
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	^ self	name: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
			superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
			category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
			instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
			classVarNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
			poolDictionaryNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
			classInstVarNames: #()
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
			comment: commentString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   124
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!MCClassDefinition methodsFor:'accessing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
actualClass
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	^Smalltalk classNamed: self className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
category
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	^ category
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
classInstVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	^ self selectVariables: #isClassInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   141
classInstVarNames:civarArray
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   142
    self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   143
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   144
    "Created: / 25-11-2011 / 17:42:34 / cg"
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   145
!
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   146
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
	^ name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   151
classTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   152
	^classTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   153
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   154
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   155
classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   156
	^self classTraitComposition ifNil: ['{}'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   157
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   158
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
classVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
	^ self selectVariables: #isClassVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
comment
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   164
        ^ comment ? ''
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   165
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   166
    "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
   167
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
commentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
	^ commentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
description
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
	^ Array with: name
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   175
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
instVarNames
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
	^ self selectVariables: #isInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   182
installedClass
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   183
        ^Smalltalk classNamed: self installedClassName
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   184
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   185
    "Created: / 07-09-2011 / 13:33:10 / cg"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   186
!
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   187
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   188
installedClassName
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   189
    "if there was a namespace override, the installedClassName might be different
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   190
     from the class name"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   191
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   192
    ^ installedClassName ? name
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   193
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   194
    "Created: / 07-09-2011 / 13:29:21 / cg"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   195
!
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   196
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
poolDictionaries
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
	^ self selectVariables: #isPoolImport
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
selectVariables: aSelector
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
	^ variables select: [:v | v perform: aSelector] thenCollect: [:v | v name]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
sortKey
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
	^ self className
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
superclassName
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
	^ superclassName
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   213
traitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   214
	^traitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   215
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   216
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   217
traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   218
	^self traitComposition ifNil: ['{}'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   219
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   220
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
type
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
	^ type
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
variables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
	^ variables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
!MCClassDefinition methodsFor:'annotations'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
printAnnotations: requests on: aStream
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
	"Add a string for an annotation pane, trying to fulfill the annotation requests.
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
	These might include anything that
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
		Preferences defaultAnnotationRequests 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
	might return. Which includes anything in
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
		Preferences annotationInfo
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
	To edit these, use:"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
	"Preferences editAnnotations"
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
	requests do: [ :aRequest |
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
		aRequest == #requirements ifTrue: [
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
			self requirements do: [ :req | aStream nextPutAll: req ] separatedBy: [ aStream space ]]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
	] separatedBy: [ aStream space ].
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
!MCClassDefinition methodsFor:'comparing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
hash
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
	| hash |
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   250
	hash := String stringHash: name initialHash: 0.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   251
	hash := String stringHash: superclassName initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   252
	hash := String stringHash: self traitCompositionString initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   253
	hash := String stringHash: self classTraitComposition asString initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   254
	hash := String stringHash: (category ifNil: ['']) initialHash: hash.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   255
	hash := String stringHash: type initialHash: hash.
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
	variables do: [
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
		:v |
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   258
		hash := String stringHash: v name initialHash: hash.
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
	].
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
	^ hash
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
provisions
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
	^ Array with: name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
requirements
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
	^ (Array with: superclassName), self poolDictionaries
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   271
!MCClassDefinition methodsFor:'converting'!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   272
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   273
asChange
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   274
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   275
    ^ClassDefinitionChange new
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   276
        mcDefinition: self;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   277
        className: name;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   278
        superClassName: superclassName;
464
3968b4ac1483 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   279
        instanceVariableNames: (String streamContents: [:s|self instVarNames do:[:nm|s nextPutAll: nm; space]]) ;
3968b4ac1483 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   280
        classVariableNames: (String streamContents: [:s|self classVarNames do:[:nm|s nextPutAll: nm; space]]) ;
3968b4ac1483 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   281
        classInstanceVariableNames: (String streamContents: [:s|self classInstVarNames do:[:nm|s nextPutAll: nm; space]]) ;
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   282
        category: category;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   283
        yourself
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   284
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   285
    "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
   286
    "Modified: / 08-11-2010 / 17:56:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
464
3968b4ac1483 changed: #asChange
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   287
    "Modified: / 04-09-2011 / 19:50:56 / cg"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   288
! !
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   289
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
!MCClassDefinition methodsFor:'initializing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
addVariables: aCollection ofType: aClass
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
	variables addAll: (aCollection collect: [:var | aClass name: var asString]).
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
defaultCommentStamp
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
	^ String new
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
	"The version below avoids stomping on stamps already in the image
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
	^ (Smalltalk at: name ifPresent: [:c | c organization commentStamp])
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
		ifNil: ['']
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
	"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   304
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
!MCClassDefinition methodsFor:'installing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
createClass
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   310
        "cg: changed to honor any nameSpace query override"
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   311
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   312
        | env superClass class installedSuperclassName|
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   313
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   314
        env := MCStXNamespaceQuery query ? Smalltalk.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   315
        superClass := env at: superclassName.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   316
        (superClass isNil and:[env ~~ Smalltalk]) ifTrue:[
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   317
            superClass := Smalltalk at: superclassName.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   318
        ].
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   319
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   320
        "Create class if not exists"
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   321
        superClass isNil ifTrue:[
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   322
            installedSuperclassName := (env == Smalltalk)
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   323
                                            ifTrue:[ superclassName ]
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   324
                                            ifFalse:[ env name ,'::',superclassName].
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   325
            superClass := Class undeclared: installedSuperclassName
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   326
        ].
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   327
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   328
        "/ env := superClass environment. 
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   329
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   330
        class := (ClassBuilder new)
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   331
                        name: name 
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   332
                        inEnvironment: env
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   333
                        subclassOf: superClass
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   334
                        type: type 
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   335
                        instanceVariableNames: self instanceVariablesString 
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   336
                        classVariableNames: self classVariablesString 
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   337
                        poolDictionaries: self sharedPoolsString
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   338
                        category: category.
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   339
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   340
        installedClassName := class name.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   341
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   342
        self traitComposition ifNotNil: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   343
                class setTraitComposition: (Compiler
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   344
                        evaluate: self traitComposition) asTraitComposition ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   345
        self classTraitComposition ifNotNil: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   346
                class class setTraitComposition: (Compiler
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   347
                        evaluate: self classTraitComposition) asTraitComposition ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   348
        ^class.
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   349
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   350
    "Modified: / 09-11-2010 / 08:30:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   351
    "Modified (comment): / 07-09-2011 / 13:32:38 / cg"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
load
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   355
    | class |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   356
470
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   357
    (class := self createClass) notNil ifTrue:[
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   358
        class class instanceVariableNames: self classInstanceVariablesString.
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   359
        self hasComment ifTrue: [class classComment: comment stamp: commentStamp]
ce343aed87ed support namespace override
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   360
    ].
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   361
    class package: MCStXPackageQuery query.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   362
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   363
    "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
   364
    "Modified: / 07-09-2011 / 13:01:53 / cg"
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   365
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   366
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   367
stringForSortedVariablesOfType: aSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   368
	^ String streamContents:
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   369
		[:stream |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   370
		(self selectVariables: aSymbol) asSortedCollection
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   371
			do: [:ea | stream nextPutAll: ea]
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   372
			separatedBy: [stream space]]
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
stringForVariablesOfType: aSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
	^ String streamContents:
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
		[:stream |
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
		(self selectVariables: aSymbol) 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
			do: [:ea | stream nextPutAll: ea]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
			separatedBy: [stream space]]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
unload
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
	Smalltalk removeClassNamed: name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
!MCClassDefinition methodsFor:'printing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
classInstanceVariablesString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
	^ self stringForVariablesOfType: #isClassInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
classVariablesString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   394
	^ self stringForSortedVariablesOfType: #isClassVariable
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
definitionString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
	^ String streamContents: [:stream | self printDefinitionOn: stream]
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
instanceVariablesString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
	^ self stringForVariablesOfType: #isInstanceVariable
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
kindOfSubclass
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   406
        type = #normal ifTrue: [^ ' subclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   407
        type = #words ifTrue: [^ ' variableWordSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   408
        type = #variable ifTrue: [^ ' variableSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   409
        type = #bytes ifTrue: [^ ' variableByteSubclass:'].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   410
        type = #weak ifTrue: [^ ' weakSubclass:' ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   411
        type = #compiledMethod ifTrue: [^ ' variableByteSubclass:' ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   412
        self error: 'Unrecognized class type'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   413
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   414
    "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
   415
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
printDefinitionOn: stream
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   418
                stream 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   419
                        nextPutAll: self superclassName;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   420
                        nextPutAll: self kindOfSubclass;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   421
                        nextPut: $# ;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   422
                        nextPutAll: self className;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   423
                        cr; tab.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   424
                self hasTraitComposition ifTrue: [
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   425
                        stream 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   426
                                nextPutAll: 'uses: ';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   427
                                nextPutAll: self traitCompositionString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   428
                                cr; tab ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   429
                stream
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   430
                        nextPutAll: 'instanceVariableNames:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   431
                        store: self instanceVariablesString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   432
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   433
                        nextPutAll: 'classVariableNames:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   434
                        store: self classVariablesString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   435
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   436
                        nextPutAll: 'poolDictionaries:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   437
                        store: self sharedPoolsString;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   438
                        cr; tab;
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   439
                        nextPutAll: 'category:';
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   440
                        store: self category asString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   441
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   442
    "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
   443
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
sharedPoolsString
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   446
	^ self stringForSortedVariablesOfType: #isPoolImport
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
source
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
	^ self definitionString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
summary
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
	^ name
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   456
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
!MCClassDefinition methodsFor:'serializing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
initializeWithName: nameString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
superclassName: superclassString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
category: categoryString 
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
instVarNames: ivarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
classVarNames: cvarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
poolDictionaryNames: poolArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
classInstVarNames: civarArray
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
type: typeSymbol
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
comment: commentString
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
commentStamp: stampStringOrNil
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   469
        name := nameString asSymbol.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   470
        superclassName := superclassString ifNil: ['nil'] ifNotNil: [superclassString asSymbol].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   471
        category := categoryString.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   472
        name = #CompiledMethod ifTrue: [type := #compiledMethod] ifFalse: [type := typeSymbol].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   473
        comment := (commentString ? '') asStringWithSqueakLineEndings.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   474
        commentStamp := stampStringOrNil ifNil: [self defaultCommentStamp].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   475
        variables := OrderedCollection  new.
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   476
        self addVariables: ivarArray ofType: MCInstanceVariableDefinition.
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   477
        self addVariables: cvarArray ofType: MCClassVariableDefinition.
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   478
        self addVariables: poolArray ofType: MCPoolImportDefinition.
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   479
        self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   480
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   481
    "Modified: / 12-09-2010 / 17:09:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   482
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   483
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   484
storeDataOn: aDataStream
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   485
	| instVarSize |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   486
	instVarSize := (self hasTraitComposition or: [ self hasClassTraitComposition ])
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   487
		ifTrue: [ self class instSize ]
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   488
		ifFalse: [ self class instSize - 2 ].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   489
	aDataStream
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   490
		beginInstance: self class
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   491
		size: instVarSize.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   492
	1 to: instVarSize do: [ :index |
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   493
		aDataStream nextPut: (self instVarAt: index) ].
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
!MCClassDefinition methodsFor:'testing'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
hasClassInstanceVariables
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
	^ (self selectVariables: #isClassInstanceVariable) isEmpty not
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   502
hasClassTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   503
	^self classTraitCompositionString ~= '{}'
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   504
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   505
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
hasComment
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   507
	^ comment isEmptyOrNil not
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   508
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   509
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   510
hasTraitComposition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   511
	^self traitCompositionString ~= '{}'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
isClassDefinition
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
	^ true
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
isCodeDefinition
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
	^ true
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
!MCClassDefinition methodsFor:'visiting'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   524
= aDefinition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   525
        ^super = aDefinition
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   526
                and: [superclassName = aDefinition superclassName
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   527
                and: [self traitCompositionString = aDefinition traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   528
                and: [self classTraitCompositionString = aDefinition classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   529
                and: [category = aDefinition category
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   530
                and: [type = aDefinition type
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   531
                and: [variables = aDefinition variables
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   532
                and: [comment = aDefinition comment]]]]]]]
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   533
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   534
    "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
   535
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   536
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
accept: aVisitor
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   538
	aVisitor visitClassDefinition: self.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   539
	(self hasClassInstanceVariables or: [self hasClassTraitComposition])
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   540
		ifTrue: [aVisitor visitMetaclassDefinition: self].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   541
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   542
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   543
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   544
initializeWithName: nameString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   545
superclassName: superclassString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   546
traitComposition: traitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   547
classTraitComposition: classTraitCompositionString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   548
category: categoryString 
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   549
instVarNames: ivarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   550
classVarNames: cvarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   551
poolDictionaryNames: poolArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   552
classInstVarNames: civarArray
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   553
type: typeSymbol
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   554
comment: commentString
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   555
commentStamp: stampStringOrNil
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   556
        name := nameString asSymbol.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   557
        superclassName := superclassString ifNil: ['nil'] ifNotNil: [superclassString asSymbol].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   558
        traitComposition := traitCompositionString.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   559
        classTraitComposition := classTraitCompositionString.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   560
        category := categoryString.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   561
        name = #CompiledMethod ifTrue: [type := #compiledMethod] ifFalse: [type := typeSymbol].
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   562
        comment := commentString isNil ifTrue:[ nil] ifFalse:[ commentString asStringWithSqueakLineEndings].
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   563
        commentStamp := stampStringOrNil ifNil: [self defaultCommentStamp].
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   564
        variables := OrderedCollection  new.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   565
        self addVariables: ivarArray ofType: MCInstanceVariableDefinition.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   566
        self addVariables: cvarArray ofType: MCClassVariableDefinition.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   567
        self addVariables: poolArray ofType: MCPoolImportDefinition.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   568
        self addVariables: civarArray ofType: MCClassInstanceVariableDefinition.
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   569
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   570
    "Modified: / 12-09-2010 / 16:05:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   571
    "Modified: / 25-11-2011 / 17:30:38 / cg"
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
! !
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
!MCClassDefinition class methodsFor:'documentation'!
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
version
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   577
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.7 2011-11-25 16:46:22 cg Exp $'
156
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   578
!
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   579
d565f9e9cee1 changed:
Claus Gittinger <cg@exept.de>
parents: 48
diff changeset
   580
version_CVS
521
ac7de5d52ead added: #classInstVarNames:
Claus Gittinger <cg@exept.de>
parents: 470
diff changeset
   581
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.7 2011-11-25 16:46:22 cg Exp $'
214
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   582
!
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   583
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   584
version_SVN
95e0329274f2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 156
diff changeset
   585
    ^ '§Id: MCClassDefinition.st 24 2010-11-09 14:00:17Z vranyj1 §'
48
1e383209540d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
! !