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