MCClassTraitDefinition.st
author Claus Gittinger <cg@exept.de>
Fri, 18 Jan 2013 18:45:13 +0100
changeset 727 d4ecd56dac5a
parent 715 3dfd1f8f35c8
child 775 618ab2073034
permissions -rw-r--r--
class: MCClassTraitDefinition changed: #asChange
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:''
612
a58642606019 category change
Claus Gittinger <cg@exept.de>
parents: 282
diff changeset
     7
	category:'SCM-Monticello-Modeling'
195
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
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    75
source
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    76
	^self definitionString
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    77
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    78
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    79
!MCClassTraitDefinition methodsFor:'comparing'!
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    80
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
sortKey
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
        ^ self baseTrait "name" , '.classTrait'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    "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
    85
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    87
!MCClassTraitDefinition methodsFor:'converting'!
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    89
asChange
727
d4ecd56dac5a class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
    90
    ^TraitDefinitionChange new
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    91
        mcDefinition: self;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    92
        baseTrait: baseTrait;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    93
        traitComposition: classTraitComposition;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    94
        category: category;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    95
        yourself
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
!MCClassTraitDefinition methodsFor:'initialization'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
initializeWithBaseTraitName: aTraitName classTraitComposition: aString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	baseTrait := aTraitName.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	classTraitComposition := aString.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
!MCClassTraitDefinition methodsFor:'installing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
load	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
	Compiler evaluate: self definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   111
!MCClassTraitDefinition methodsFor:'printing'!
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   112
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   113
summary
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   114
	^self baseTrait , ' classTrait'
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   115
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   116
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   117
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
!MCClassTraitDefinition methodsFor:'testing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
isClassDefinition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
	"Traits are treated the same like classes."
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
	^ true
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   126
!MCClassTraitDefinition methodsFor:'visiting'!
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   127
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   128
accept: aVisitor
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   129
	^ aVisitor visitClassTraitDefinition: self.
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   130
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   131
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
!MCClassTraitDefinition class methodsFor:'documentation'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
version
727
d4ecd56dac5a class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   135
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.5 2013-01-18 17:45:13 cg Exp $'
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
version_CVS
727
d4ecd56dac5a class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents: 715
diff changeset
   139
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.5 2013-01-18 17:45:13 cg Exp $'
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
version_SVN
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    ^ '§Id: MCClassTraitDefinition.st 12 2010-09-15 13:13:22Z vranyj1 §'
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   145