MCClassTraitDefinition.st
author mawalch
Mon, 08 Aug 2016 20:13:50 +0200
changeset 1010 bac4a6f2690e
parent 922 e4b3803d96fd
permissions -rw-r--r--
#OTHER by mawalch Fix ridiculously propagated typo.
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
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
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
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
className
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^self baseTrait
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
classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	^classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
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
classTraitCompositionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	^self classTraitComposition ifNil: ['{}'].
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	^self baseTrait , ' classTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	uses: ' , self classTraitCompositionString.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
description
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^Array
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
		with: baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		with: classTraitComposition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
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
	| hash |
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	hash := String stringHash: baseTrait initialHash: 0.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
	hash := String stringHash: self classTraitCompositionString initialHash: hash.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	^hash
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
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
requirements
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^Array with: baseTrait
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    79
source
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    80
	^self definitionString
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    81
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    82
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    83
!MCClassTraitDefinition methodsFor:'comparing'!
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    84
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
sortKey
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
        ^ self baseTrait "name" , '.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
    "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
    89
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    91
!MCClassTraitDefinition methodsFor:'converting'!
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    93
asChange
775
618ab2073034 class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
    94
    ^TraitClassTraitDefinitionChange new
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    95
        mcDefinition: self;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    96
        baseTrait: baseTrait;
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    97
        traitComposition: classTraitComposition;
775
618ab2073034 class: MCClassTraitDefinition
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
    98
        "/ category: category;
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
    99
        yourself
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!MCClassTraitDefinition methodsFor:'initialization'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
initializeWithBaseTraitName: aTraitName classTraitComposition: aString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	baseTrait := aTraitName.
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	classTraitComposition := aString.
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:'installing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
load	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	Compiler evaluate: self definitionString
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   115
!MCClassTraitDefinition methodsFor:'printing'!
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
summary
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   118
	^self baseTrait , ' classTrait'
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   119
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   120
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   121
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
!MCClassTraitDefinition methodsFor:'testing'!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
isClassDefinition
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	"Traits are treated the same like classes."
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
	^ true
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
! !
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   130
!MCClassTraitDefinition methodsFor:'visiting'!
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   131
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   132
accept: aVisitor
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   133
	^ aVisitor visitClassTraitDefinition: self.
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   134
! !
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   135
195
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
!MCClassTraitDefinition class methodsFor:'documentation'!
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
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
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_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
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
!
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   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
71e1c0a41b4a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
! !
715
3dfd1f8f35c8 category changes
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   149