author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sun, 24 Aug 2014 01:49:18 +0100 | |
changeset 635 | 9edd6a278835 |
parent 628 | 6f639016753b |
parent 634 | d77d9a7561be |
child 674 | 58df305d9184 |
permissions | -rw-r--r-- |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jn:refactoring_custom' }" |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
2 |
|
588
ba44cf2de8b7
rename CustomAccessMethodsCodeGeneratorTests to CustomGetterMethodsCodeGeneratorTests
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
587
diff
changeset
|
3 |
CustomAccessMethodsCodeGenerator subclass:#CustomValueHolderGetterMethodsCodeGenerator |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
4 |
instanceVariableNames:'' |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
5 |
classVariableNames:'' |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
559
ba4af98f41c5
Code generators and refactorings moved to their own class category.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
7 |
category:'Interface-Refactoring-Custom-Generators' |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
8 |
! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
9 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
10 |
!CustomValueHolderGetterMethodsCodeGenerator class methodsFor:'accessing-presentation'! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
11 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
12 |
description |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
13 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
14 |
^ 'Getter methods with ValueHolder for selected instance variables' |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
15 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
16 |
"Created: / 19-05-2014 / 20:56:42 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
587
bd181c1f381a
add value holder with change notification getter generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
586
diff
changeset
|
17 |
"Modified: / 30-06-2014 / 19:44:29 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
18 |
! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
19 |
|
628
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
20 |
group |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
21 |
"Returns a collection strings describing a group to which |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
22 |
receiver belongs. A groups may be nested hence the array of |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
23 |
strings. For example for subgroup 'Accessors' in group 'Generators' |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
24 |
this method should return #('Generators' 'Accessors')." |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
25 |
|
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
26 |
"/ By default return an empty array which means the item will appear |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
27 |
"/ in top-level group. |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
28 |
^ #('Accessors' 'Getters') |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
29 |
|
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
30 |
"Created: / 22-08-2014 / 18:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
31 |
! |
6f639016753b
Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
616
diff
changeset
|
32 |
|
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
33 |
label |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
34 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
35 |
^ 'Getter Method(s) for ValueHolder' |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
36 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
37 |
"Created: / 19-05-2014 / 20:56:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
38 |
! ! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
39 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
40 |
!CustomValueHolderGetterMethodsCodeGenerator methodsFor:'accessing'! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
41 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
42 |
protocol |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
43 |
"Returns protocol name in which will belong getter method" |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
44 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
45 |
^ 'aspects' |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
46 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
47 |
"Created: / 19-05-2014 / 20:59:12 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
48 |
! ! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
49 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
50 |
!CustomValueHolderGetterMethodsCodeGenerator methodsFor:'code generation'! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
51 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
52 |
sourceForClass: aClass variableName: aName |
586
1c899d168cf4
change wrong comment in ValueHolder getter generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
584
diff
changeset
|
53 |
"Returns getter method source code with ValueHolder for given class and variable name" |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
54 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
55 |
| methodName comment methodBuilder | |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
56 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
57 |
methodName := self methodNameFor: aName. |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
58 |
comment := ''. |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
59 |
|
566
29c2269d339a
replace inst. variable generateCommentsForGetters with userPreferences call - more flexibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
549
diff
changeset
|
60 |
userPreferences generateCommentsForGetters ifTrue:[ |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
61 |
comment := '"return/create the ''%1'' value holder (automatically generated)"'. |
583
55475dc00cfe
fix comment generation (missing variable name) in value holder getter generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
566
diff
changeset
|
62 |
comment := comment bindWith: aName. |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
63 |
]. |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
64 |
|
634
d77d9a7561be
move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
588
diff
changeset
|
65 |
methodBuilder := codeBuilder methodBuilder. |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
66 |
methodBuilder |
584
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
67 |
source: '`@methodName |
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
68 |
`"comment |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
69 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
70 |
`variableName isNil ifTrue:[ |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
71 |
`variableName := ValueHolder new. |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
72 |
]. |
584
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
73 |
^ `variableName'; |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
74 |
replace: '`@methodName' with: methodName asSymbol; |
584
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
75 |
replace: '`variableName' with: aName asString; |
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
76 |
replace: '`"comment' with: comment. |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
77 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
78 |
^ methodBuilder buildedSource |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
79 |
|
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
80 |
"Created: / 19-05-2014 / 20:52:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
584
08600ce8fd2d
comments substitution in getter generators refactored with replace method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
583
diff
changeset
|
81 |
"Modified: / 29-06-2014 / 21:39:48 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
586
1c899d168cf4
change wrong comment in ValueHolder getter generator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
584
diff
changeset
|
82 |
"Modified (comment): / 30-06-2014 / 19:19:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>" |
549
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
83 |
! ! |
d34ea0b715b2
add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff
changeset
|
84 |