author | Claus Gittinger <cg@exept.de> |
Wed, 09 May 2018 09:58:25 +0200 | |
changeset 1046 | 2c62588b53ed |
parent 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 |
||
922
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
30 |
actualClass |
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
31 |
^Smalltalk classNamed: self className |
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
32 |
! |
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
33 |
|
195 | 34 |
baseTrait |
35 |
^baseTrait |
|
36 |
||
37 |
! |
|
38 |
||
39 |
className |
|
40 |
^self baseTrait |
|
41 |
! |
|
42 |
||
43 |
classTraitComposition |
|
44 |
^classTraitComposition |
|
45 |
||
46 |
||
47 |
! |
|
48 |
||
49 |
classTraitCompositionString |
|
50 |
^self classTraitComposition ifNil: ['{}']. |
|
51 |
||
52 |
||
53 |
! |
|
54 |
||
55 |
definitionString |
|
56 |
^self baseTrait , ' classTrait |
|
57 |
uses: ' , self classTraitCompositionString. |
|
58 |
||
59 |
! |
|
60 |
||
61 |
description |
|
62 |
^Array |
|
63 |
with: baseTrait |
|
64 |
with: classTraitComposition |
|
65 |
! |
|
66 |
||
67 |
hash |
|
68 |
| hash | |
|
69 |
hash := String stringHash: baseTrait initialHash: 0. |
|
70 |
hash := String stringHash: self classTraitCompositionString initialHash: hash. |
|
71 |
^hash |
|
72 |
||
73 |
! |
|
74 |
||
75 |
requirements |
|
76 |
^Array with: baseTrait |
|
77 |
! |
|
78 |
||
715 | 79 |
source |
80 |
^self definitionString |
|
81 |
! ! |
|
82 |
||
83 |
!MCClassTraitDefinition methodsFor:'comparing'! |
|
84 |
||
195 | 85 |
sortKey |
86 |
^ self baseTrait "name" , '.classTrait' |
|
87 |
||
88 |
"Modified: / 14-09-2010 / 20:59:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
89 |
! ! |
|
90 |
||
715 | 91 |
!MCClassTraitDefinition methodsFor:'converting'! |
195 | 92 |
|
715 | 93 |
asChange |
775
618ab2073034
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
727
diff
changeset
|
94 |
^TraitClassTraitDefinitionChange new |
715 | 95 |
mcDefinition: self; |
96 |
baseTrait: baseTrait; |
|
97 |
traitComposition: classTraitComposition; |
|
775
618ab2073034
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
727
diff
changeset
|
98 |
"/ category: category; |
715 | 99 |
yourself |
195 | 100 |
! ! |
101 |
||
102 |
!MCClassTraitDefinition methodsFor:'initialization'! |
|
103 |
||
104 |
initializeWithBaseTraitName: aTraitName classTraitComposition: aString |
|
105 |
baseTrait := aTraitName. |
|
106 |
classTraitComposition := aString. |
|
107 |
! ! |
|
108 |
||
109 |
!MCClassTraitDefinition methodsFor:'installing'! |
|
110 |
||
111 |
load |
|
112 |
Compiler evaluate: self definitionString |
|
113 |
! ! |
|
114 |
||
715 | 115 |
!MCClassTraitDefinition methodsFor:'printing'! |
116 |
||
117 |
summary |
|
118 |
^self baseTrait , ' classTrait' |
|
119 |
||
120 |
! ! |
|
121 |
||
195 | 122 |
!MCClassTraitDefinition methodsFor:'testing'! |
123 |
||
124 |
isClassDefinition |
|
125 |
"Traits are treated the same like classes." |
|
126 |
||
127 |
^ true |
|
128 |
! ! |
|
129 |
||
715 | 130 |
!MCClassTraitDefinition methodsFor:'visiting'! |
131 |
||
132 |
accept: aVisitor |
|
133 |
^ aVisitor visitClassTraitDefinition: self. |
|
134 |
! ! |
|
135 |
||
195 | 136 |
!MCClassTraitDefinition class methodsFor:'documentation'! |
137 |
||
138 |
version |
|
922
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
139 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.7 2014-04-12 13:07:01 cg Exp $' |
195 | 140 |
! |
141 |
||
142 |
version_CVS |
|
922
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
143 |
^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassTraitDefinition.st,v 1.7 2014-04-12 13:07:01 cg Exp $' |
195 | 144 |
! |
145 |
||
146 |
version_SVN |
|
922
e4b3803d96fd
class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents:
775
diff
changeset
|
147 |
^ '$Id: MCClassTraitDefinition.st,v 1.7 2014-04-12 13:07:01 cg Exp $' |
195 | 148 |
! ! |
715 | 149 |