MCClassTraitDefinition.st
author Claus Gittinger <cg@exept.de>
Sat, 20 Aug 2011 14:04:07 +0200
changeset 282 422c2fed931d
parent 195 71e1c0a41b4a
child 612 a58642606019
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCDefinition subclass:#MCClassTraitDefinition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'baseTrait classTraitComposition category'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Modeling'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCClassTraitDefinition class methodsFor:'as yet unclassified'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
baseTraitName: aString classTraitComposition: classTraitCompositionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^self instanceLike: (
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
		self new
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
			initializeWithBaseTraitName: aString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
			classTraitComposition: classTraitCompositionString).
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!MCClassTraitDefinition methodsFor:'accessing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
= aDefinition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	^ (super = aDefinition)
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
		and: [baseTrait = aDefinition baseTrait]
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		and: [self classTraitCompositionString = aDefinition classTraitCompositionString]
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	^baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
className
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	^self baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
classTraitCompositionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	^self classTraitComposition ifNil: ['{}'].
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	^self baseTrait , ' classTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	uses: ' , self classTraitCompositionString.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
description
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	^Array
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
		with: baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
		with: classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
hash
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	| hash |
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	hash := String stringHash: baseTrait initialHash: 0.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	hash := String stringHash: self classTraitCompositionString initialHash: hash.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	^hash
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
requirements
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	^Array with: baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
sortKey
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        ^ self baseTrait "name" , '.classTrait'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "Modified: / 14-09-2010 / 20:59:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
source
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	^self definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
summary
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	^self baseTrait , ' classTrait'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!MCClassTraitDefinition methodsFor:'as yet unclassified'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
accept: aVisitor
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	^ aVisitor visitClassTraitDefinition: self.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!MCClassTraitDefinition methodsFor:'initialization'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
initializeWithBaseTraitName: aTraitName classTraitComposition: aString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	baseTrait := aTraitName.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	classTraitComposition := aString.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!MCClassTraitDefinition methodsFor:'installing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
load	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	Compiler evaluate: self definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!MCClassTraitDefinition methodsFor:'testing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
isClassDefinition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	"Traits are treated the same like classes."
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	^ true
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!MCClassTraitDefinition class methodsFor:'documentation'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
version
282
422c2fed931d initial checkin
Claus Gittinger <cg@exept.de>
parents: 195
diff changeset
   120
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.2 2011-08-20 12:04:07 cg Exp $'
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
version_CVS
282
422c2fed931d initial checkin
Claus Gittinger <cg@exept.de>
parents: 195
diff changeset
   124
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.2 2011-08-20 12:04:07 cg Exp $'
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
version_SVN
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    ^ '§Id: MCClassTraitDefinition.st 12 2010-09-15 13:13:22Z vranyj1 §'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
! !