refactoring_custom/SmallSense__CustomMultiSetterMethodsCodeGenerator.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 13 Nov 2017 22:26:12 -0300
changeset 1060 af3a048f9618
parent 833 297eb38e4eee
child 1072 a44c741ee5ef
permissions -rw-r--r--
Fixed xompletion of instance variables in inspector
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     1
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     2
A custom code generation and refactoring support for Smalltalk/X
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     3
Copyright (C) 2013-2015 Jakub Nesveda
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     4
Copyright (C) 2013-now  Jan Vrany
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     5
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     6
This library is free software; you can redistribute it and/or
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     7
modify it under the terms of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     8
License as published by the Free Software Foundation; either
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     9
version 2.1 of the License.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    10
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    11
This library is distributed in the hope that it will be useful,
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    12
but WITHOUT ANY WARRANTY; without even the implied warranty of
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    14
Lesser General Public License for more details.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    15
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    16
You should have received a copy of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    17
License along with this library; if not, write to the Free Software
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    18
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    19
"
833
297eb38e4eee Package jn:refactoring_custom renamed to stx:goodies/smallsense/refactoring_custom
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 830
diff changeset
    20
"{ Package: 'stx:goodies/smallsense/refactoring_custom' }"
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    21
830
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
    22
"{ NameSpace: SmallSense }"
803
95cdac772759 Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
    23
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    24
CustomAccessMethodsCodeGenerator subclass:#CustomMultiSetterMethodsCodeGenerator
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    25
	instanceVariableNames:''
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    26
	classVariableNames:''
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
	poolDictionaries:''
656
a95284467938 move all code generators to category Interface-Refactoring-Custom-Generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 635
diff changeset
    28
	category:'Interface-Refactoring-Custom-Generators'
614
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
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    31
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'documentation'!
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    32
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    33
copyright
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    34
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    35
A custom code generation and refactoring support for Smalltalk/X
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    36
Copyright (C) 2013-2015 Jakub Nesveda
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    37
Copyright (C) 2013-now  Jan Vrany
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    38
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    39
This library is free software; you can redistribute it and/or
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    40
modify it under the terms of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    41
License as published by the Free Software Foundation; either
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    42
version 2.1 of the License.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    43
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    44
This library is distributed in the hope that it will be useful,
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    45
but WITHOUT ANY WARRANTY; without even the implied warranty of
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    46
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    47
Lesser General Public License for more details.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    48
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    49
You should have received a copy of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    50
License along with this library; if not, write to the Free Software
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    51
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    52
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    53
! !
632
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
    54
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    55
!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
    56
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
description
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
    "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
    59
    
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
    ^ '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
    61
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
    "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
    63
!
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
628
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    65
group
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    66
    "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: 614
diff changeset
    67
     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: 614
diff changeset
    68
     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: 614
diff changeset
    69
     this method should return #('Generators' 'Accessors')."
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    70
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    71
    "/ 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: 614
diff changeset
    72
    "/ in top-level group.
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    73
    ^ #('Accessors' 'Getters')
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    74
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    75
    "Created: / 22-08-2014 / 18:54:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    76
!
6f639016753b Sort generators or refactorings by their group.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 614
diff changeset
    77
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    78
label
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    79
    "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
    80
     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
    81
    
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    82
    ^ 'Multi-Setter Method(s)'
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    83
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    84
    "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
    85
! !
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    86
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    87
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'queries'!
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    88
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    89
availableInContext:aCustomContext
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    90
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    91
    ^ aCustomContext selectedClasses notEmptyOrNil and: [ 
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    92
        aCustomContext selectedVariables notEmptyOrNil and: [ 
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    93
            aCustomContext selectedVariables size >= 2
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    94
        ]
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
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    97
    "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
    98
! !
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    99
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   100
!CustomMultiSetterMethodsCodeGenerator methodsFor:'code generation'!
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   101
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   102
createMultiSetterMethodForVariables: aVariableNames inClass: aClass
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   103
    "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
   104
687
2cd68852d81e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 656
diff changeset
   105
    | setterSelector comment assignVariablesCode |
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   106
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   107
    setterSelector := ''.
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   108
    comment := ''.
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   109
    assignVariablesCode := ''.
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   110
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   111
    userPreferences generateCommentsForSetters ifTrue: [ 
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   112
        comment := '"set instance variables"'.
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   113
    ].
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   114
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   115
    aVariableNames do: [ :variableName |
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   116
        | argumentName |
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   117
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   118
        argumentName := variableName asString, 'Arg'.
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   119
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   120
        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
   121
        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
   122
    ].
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   123
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   124
    model createMethod
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   125
        class: aClass;
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   126
        protocol: 'accessing';
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   127
        source: '`@setterSelector
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   128
            `"comment
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   129
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   130
            `@assignVariablesCode
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   131
        ';
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   132
        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
   133
        replace: '`"comment' with: comment;
687
2cd68852d81e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 656
diff changeset
   134
        replace: '`@assignVariablesCode' with: assignVariablesCode;
2cd68852d81e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 656
diff changeset
   135
        compile.
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   136
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   137
    "Created: / 13-07-2014 / 20:45:41 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
687
2cd68852d81e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 656
diff changeset
   138
    "Modified: / 08-10-2014 / 19:00:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
614
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   139
! !
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   140
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   141
!CustomMultiSetterMethodsCodeGenerator methodsFor:'executing'!
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   142
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   143
buildInContext: aCustomContext
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   144
    "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
   145
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   146
    aCustomContext selectedClasses do:[ :class | 
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   147
        self
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   148
            createMultiSetterMethodForVariables: aCustomContext selectedVariables
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   149
            inClass: class 
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   150
    ].
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   151
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   152
    "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
   153
! !
66a50b63a877 add context templates for generator testing (two and three instance variables)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   154
632
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   155
!CustomMultiSetterMethodsCodeGenerator class methodsFor:'documentation'!
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   156
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   157
version_HG
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   158
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   159
    ^ '$Changeset: <not expanded> $'
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   160
! !
7a0f27afd9e0 change CustomRefactoryBuilder to work with CustomSourceCodeSelection
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 614
diff changeset
   161