author | Jakub Nesveda <jakubnesveda@seznam.cz> |
Thu, 21 Aug 2014 21:28:39 +0200 | |
changeset 632 | 7a0f27afd9e0 |
parent 614 | 66a50b63a877 |
child 634 | d77d9a7561be |
permissions | -rw-r--r-- |
614
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jn:refactoring_custom' }" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
2 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
3 |
CustomAccessMethodsCodeGenerator subclass:#CustomMultiSetterMethodsCodeGenerator |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
4 |
instanceVariableNames:'' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
5 |
classVariableNames:'' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
7 |
category:'Interface-Refactoring-Custom' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
8 |
! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
9 |
|
632
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
10 |
|
614
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
11 |
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'accessing-presentation'! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
12 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
13 |
description |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
14 |
"Returns more detailed description of the receiver" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
15 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
16 |
^ 'Multi-Setter Method(s) for selected instance variables' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
17 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
18 |
"Modified: / 13-07-2014 / 19:06:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
19 |
! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
20 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
21 |
label |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
22 |
"Returns show label describing the receiver. This label |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
23 |
is used in UI as menu item/tree item label." |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
24 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
25 |
^ 'Multi-Setter Method(s)' |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
26 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
27 |
"Modified: / 13-07-2014 / 19:06:16 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
28 |
! ! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
29 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
30 |
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'queries'! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
31 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
32 |
availableInContext:aCustomContext |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
33 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
34 |
^ aCustomContext selectedClasses notEmptyOrNil and: [ |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
35 |
aCustomContext selectedVariables notEmptyOrNil and: [ |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
36 |
aCustomContext selectedVariables size >= 2 |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
37 |
] |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
38 |
] |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
39 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
40 |
"Created: / 13-07-2014 / 19:14:36 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
41 |
! ! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
42 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
43 |
!CustomMultiSetterMethodsCodeGenerator methodsFor:'code generation'! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
44 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
45 |
createMultiSetterMethodForVariables: aVariableNames inClass: aClass |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
46 |
"Creates multi-setter access method for given variable names and class" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
47 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
48 |
| setterSelector comment assignVariablesCode method | |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
49 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
50 |
setterSelector := ''. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
51 |
comment := ''. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
52 |
assignVariablesCode := ''. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
53 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
54 |
userPreferences generateCommentsForSetters ifTrue: [ |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
55 |
comment := '"set instance variables"'. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
56 |
]. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
57 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
58 |
aVariableNames do: [ :variableName | |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
59 |
| argumentName | |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
60 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
61 |
argumentName := variableName asString, 'Arg'. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
62 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
63 |
setterSelector := setterSelector, variableName asString, ': ', argumentName, ' '. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
64 |
assignVariablesCode := assignVariablesCode, variableName asString, ' := ', argumentName, '. '. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
65 |
]. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
66 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
67 |
method := builder createMethod. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
68 |
method |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
69 |
class: aClass; |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
70 |
protocol: 'accessing'; |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
71 |
source: '`@setterSelector |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
72 |
`"comment |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
73 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
74 |
`@assignVariablesCode |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
75 |
'; |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
76 |
replace: '`@setterSelector' with: setterSelector asSymbol; |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
77 |
replace: '`"comment' with: comment; |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
78 |
replace: '`@assignVariablesCode' with: assignVariablesCode. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
79 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
80 |
"Created: / 13-07-2014 / 20:45:41 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
81 |
! ! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
82 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
83 |
!CustomMultiSetterMethodsCodeGenerator methodsFor:'executing'! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
84 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
85 |
buildInContext: aCustomContext |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
86 |
"Creates multi-setter access methods for given context" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
87 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
88 |
aCustomContext selectedClasses do:[ :class | |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
89 |
self |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
90 |
createMultiSetterMethodForVariables: aCustomContext selectedVariables |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
91 |
inClass: class |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
92 |
]. |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
93 |
|
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
94 |
"Modified: / 13-07-2014 / 20:45:41 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
95 |
! ! |
66a50b63a877
add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
96 |
|
632
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
97 |
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'documentation'! |
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
98 |
|
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
99 |
version_HG |
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
100 |
|
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
101 |
^ '$Changeset: <not expanded> $' |
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
102 |
! ! |
7a0f27afd9e0
change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
614
diff
changeset
|
103 |