refactoring_custom/SmallSense__CustomNamespace.st
author convert-repo
Wed, 11 Dec 2019 04:28:36 +0000
changeset 1116 b51ace366efc
parent 1072 a44c741ee5ef
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
     1
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
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: 815
diff changeset
     3
Copyright (C) 2013-2015 Jakub Nesveda
1072
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
     4
Copyright (C) 2015 Jan Vrany
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
     5
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
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: 815
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: 815
diff changeset
     8
License as published by the Free Software Foundation; either
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
     9
version 2.1 of the License.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    10
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
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: 815
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: 815
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: 815
diff changeset
    14
Lesser General Public License for more details.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    15
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
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: 815
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: 815
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: 815
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' }"
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
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: 765
diff changeset
    23
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    24
RBNamespace subclass:#CustomNamespace
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
    25
	instanceVariableNames:'changeManager formatter classModelClass methodModelClass
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
    26
		sourceCodeGeneratorClass'
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
	classVariableNames:''
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    28
	poolDictionaries:''
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
	category:'Interface-Refactoring-Custom'
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    30
!
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    31
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    32
!CustomNamespace class methodsFor:'documentation'!
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    33
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    34
copyright
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    35
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    36
A custom code generation and refactoring support for Smalltalk/X
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    37
Copyright (C) 2013-2015 Jakub Nesveda
1072
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
    38
Copyright (C) 2015 Jan Vrany
828
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    39
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    40
This library is free software; you can redistribute it and/or
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    41
modify it under the terms of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    42
License as published by the Free Software Foundation; either
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    43
version 2.1 of the License.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    44
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    45
This library is distributed in the hope that it will be useful,
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    46
but WITHOUT ANY WARRANTY; without even the implied warranty of
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    47
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    48
Lesser General Public License for more details.
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    49
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    50
You should have received a copy of the GNU Lesser General Public
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    51
License along with this library; if not, write to the Free Software
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    52
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    53
"
4c5acc592dc7 Added copyright notice
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 815
diff changeset
    54
! !
518
e5c0c890d953 work in progress - add code generator which creates a template class for code generation
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 515
diff changeset
    55
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    56
!CustomNamespace methodsFor:'accessing'!
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    58
at: aClassName
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    59
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    60
    ^ self classNamed: aClassName asSymbol
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    61
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    62
    "Created: / 15-11-2014 / 17:30:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    63
!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
    64
634
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    65
changeManager
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    66
    ^ changeManager
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    67
!
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    68
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    69
changeManager:something
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    70
    changeManager := something.
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    71
!
d77d9a7561be move refactoryBuilder and codeBuilder to CustomCodeGeneratorOrRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 630
diff changeset
    72
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    73
classModelClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    74
    "Returns class which represents Class in model in which we make changes (add class, rename class ...)."
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    75
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    76
    ^ classModelClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    77
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    78
    "Modified (comment): / 09-10-2014 / 11:14:51 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    79
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    80
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    81
classModelClass: aClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    82
    "see classModelClass"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    83
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    84
    classModelClass := aClass.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    85
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    86
    "Modified (comment): / 09-10-2014 / 11:15:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    87
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
    88
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    89
formatter
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    90
    ^ formatter
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    91
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    92
    "Created: / 28-08-2014 / 23:19:02 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    93
!
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    94
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    95
formatter: aFormatter
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    96
    formatter := aFormatter
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    97
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 648
diff changeset
    98
    "Created: / 28-08-2014 / 23:19:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
    99
!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   100
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   101
methodModelClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   102
    "Returns class which represents Method in model in which we make changes (add method, change method source ...)."
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   103
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   104
    ^ methodModelClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   105
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   106
    "Modified (comment): / 09-10-2014 / 11:17:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   107
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   108
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   109
methodModelClass: aClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   110
    "see methodModelClass"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   111
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   112
    methodModelClass := aClass.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   113
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   114
    "Modified (comment): / 09-10-2014 / 11:16:02 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   115
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   116
721
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   117
putModelClass: aModelClass 
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   118
    "Stores model class (e.g. RBClass) in this model so we can work further with 
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   119
    the given class and the modifications done to the given class 
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   120
    are reflected in this model (represented by CustomNamespace/RBNamespace)."
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   121
    | classIndex name isClassUndefined |
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   122
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   123
    classIndex := 1.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   124
    name := aModelClass name.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   125
    aModelClass isMeta ifTrue: [ 
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   126
        classIndex := 2.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   127
        name := aModelClass theNonMetaclass name.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   128
    ].
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   129
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   130
    isClassUndefined := true.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   131
    newClasses at: name ifPresent: [ :classes |
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   132
        isClassUndefined := false.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   133
        classes at: classIndex put: aModelClass  
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   134
    ].
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   135
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   136
    changedClasses at: name ifPresent: [ :classes |
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   137
        isClassUndefined := false.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   138
        classes at: classIndex put: aModelClass  
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   139
    ].
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   140
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   141
    isClassUndefined ifTrue: [
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   142
        self error: 'Class has to be defined in the model - see defineClass: .'.
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   143
    ]
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   144
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   145
    "Created: / 04-11-2014 / 00:03:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   146
    "Modified: / 04-11-2014 / 01:07:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   147
!
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 720
diff changeset
   148
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   149
sourceCodeGenerator
763
0377a6999b93 better comment for CustomNamespace >> sourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 757
diff changeset
   150
    "Returns initialized source code generator (CodeGenerator, CustomSourceCodeGenerator)"
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   151
    | sourceCodeGenerator |
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   152
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   153
    sourceCodeGenerator := self sourceCodeGeneratorClass new.
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   154
    sourceCodeGenerator formatter: formatter.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   155
    ^ sourceCodeGenerator.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   156
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   157
    "Created: / 19-09-2014 / 20:56:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   158
    "Modified: / 09-10-2014 / 11:35:24 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
763
0377a6999b93 better comment for CustomNamespace >> sourceCodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 757
diff changeset
   159
    "Modified (comment): / 27-11-2014 / 19:32:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   160
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   161
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   162
sourceCodeGeneratorClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   163
    "Returns code generator class which supports search & replace in method source code and formatting"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   164
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   165
    ^ sourceCodeGeneratorClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   166
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   167
    "Modified (comment): / 09-10-2014 / 11:34:34 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   168
!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   169
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   170
sourceCodeGeneratorClass: aClass
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   171
    "see sourceCodeGeneratorClass"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   172
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   173
    sourceCodeGeneratorClass := aClass.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   174
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   175
    "Modified (comment): / 09-10-2014 / 11:34:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
512
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   176
! !
a527e7f19b30 work in progress - remove duplicate code in code generation methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   177
757
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   178
!CustomNamespace methodsFor:'accessing-classes'!
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   179
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   180
classNamed: aName 
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   181
    "Returns an RBClass instance stored under given class name
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   182
    or nil if nothing found"
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   183
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   184
    ^ super classNamed: aName asSymbol
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   185
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   186
    "Created: / 19-11-2014 / 21:19:47 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   187
!
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   188
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   189
metaclassNamed: aName 
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   190
    "Returns an RBMetaclass instance stored under given class name
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   191
    or nil if nothing found"
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   192
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   193
    ^ super metaclassNamed: aName asSymbol
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   194
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   195
    "Created: / 19-11-2014 / 21:20:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   196
! !
2e6019cc8e6d added possibilty to define class name by a string (and also symbol) in RBAbstractClass
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   197
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   198
!CustomNamespace methodsFor:'changes'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   199
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   200
defineClass: aString
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   201
    "Defines a class withing this model by its definition string.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   202
    Here is same behaviour as in RBNamespace, but we added private
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   203
    class support."
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   204
    | change |
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   205
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   206
    change := super defineClass: aString.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   207
    change privateInClassName notNil ifTrue: [ 
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   208
        | class |
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   209
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   210
        class := self classNamed: change changeClassName.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   211
        class owningClass: (self classNamed: change privateInClassName)
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   212
    ].
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   213
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   214
    ^ change
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   215
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   216
    "Created: / 29-11-2014 / 14:39:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   217
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 763
diff changeset
   218
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   219
!CustomNamespace methodsFor:'code creation'!
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   220
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   221
createClass
549
d34ea0b715b2 add method for retrieving builded source code as string: CustomSourceCodeBuilder >> buildedSource
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 540
diff changeset
   222
    "Much like createMethod, but for class"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   223
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   224
    ^ self classModelClass new
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   225
        model: self;
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   226
        superclass: (self classNamed: #Object);
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   227
        instanceVariableNames: #();
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   228
        classVariableNames: #();
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   229
        poolDictionaryNames: #();
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   230
        yourself.
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   231
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   232
    "Created: / 09-04-2014 / 21:38:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   233
    "Modified: / 05-02-2015 / 22:31:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   234
!
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   235
697
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   236
createMethod
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   237
    "
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   238
    Creates, returns method representation
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   239
    so code changes can be created withing this class as one undo change
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   240
    "
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   241
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   242
    ^ self methodModelClass new
697
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   243
        model: self;
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   244
        sourceCodeGenerator: self sourceCodeGenerator;
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   245
        yourself.
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   246
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   247
    "Created: / 09-04-2014 / 23:54:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   248
    "Modified: / 05-02-2015 / 22:32:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
697
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   249
! !
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   250
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   251
!CustomNamespace methodsFor:'code creation - immediate'!
78f447fe7837 move methods for creation immediate code to protocol 'create code - immediate' in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   252
620
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   253
createClassImmediate: aClassName
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   254
    "Creates class immediately and returns the real class"
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   255
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   256
    ^ self createClassImmediate: aClassName superClassName: 'Object'
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   257
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   258
    "Created: / 27-07-2014 / 12:40:55 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   259
!
6c4f724ba4ce add CustomSourceCodeBuilder >> createClassImmediate with default superClassName
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 618
diff changeset
   260
706
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   261
createClassImmediate: aClassName category: aCategoryName
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   262
    "Creates class immediately and returns the real class"
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   263
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   264
    ^ self 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   265
        createClassImmediate: aClassName 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   266
        superClassName: 'Object' 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   267
        instanceVariableNames: '' 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   268
        classVariableNames: ''
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   269
        poolDictionaries: ''
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   270
        category: aCategoryName
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   271
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   272
    "Created: / 19-10-2014 / 20:55:10 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   273
!
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   274
638
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   275
createClassImmediate: aClassName instanceVariableNames: instVarNames
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   276
    "Creates class immediately and returns the real class"
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   277
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   278
    ^ self 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   279
        createClassImmediate: aClassName 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   280
        superClassName: 'Object' 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   281
        instanceVariableNames: instVarNames 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   282
        classVariableNames: ''
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   283
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   284
    "Created: / 23-08-2014 / 22:25:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   285
!
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   286
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   287
createClassImmediate: aClassName superClassName: aSuperClassName
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   288
    "Creates class immediately and returns the real class"
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   289
638
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   290
    ^ self 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   291
        createClassImmediate: aClassName 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   292
        superClassName: aSuperClassName 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   293
        instanceVariableNames: '' 
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   294
        classVariableNames: ''
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   295
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   296
    "Created: / 15-06-2014 / 15:59:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   297
    "Modified: / 23-08-2014 / 22:18:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   298
!
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   299
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   300
createClassImmediate: aClassName superClassName: aSuperClassName instanceVariableNames: instVarNames classVariableNames: classVarNames
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   301
    "Creates class immediately and returns the real class"
62a6119d3cee add createClassImmediate variations in CustomSourceCodeBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 637
diff changeset
   302
706
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   303
    ^ self createClassImmediate: aClassName 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   304
        superClassName: aSuperClassName 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   305
        instanceVariableNames: instVarNames 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   306
        classVariableNames: classVarNames 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   307
        poolDictionaries: '' 
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   308
        category: ''
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   309
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   310
    "Created: / 23-08-2014 / 22:18:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   311
    "Modified: / 19-10-2014 / 20:49:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   312
!
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   313
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   314
createClassImmediate: aClassName superClassName: aSuperClassName instanceVariableNames: instVarNames classVariableNames: classVarNames poolDictionaries: poolDict category: category
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   315
    "Creates class immediately and returns the real class"
ee83e8c20350 make shared changeManeger and formatter for model and refactoryBuilder\ncompleted implementation search in class categories in refactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 705
diff changeset
   316
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   317
    ^ self createClassImmediate: aClassName superClassName: aSuperClassName instanceVariableNames: instVarNames classVariableNames: classVarNames poolDictionaries: poolDict category: category privateIn: nil
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   318
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   319
    "Created: / 19-10-2014 / 20:47:51 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   320
    "Modified: / 30-10-2014 / 21:46:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   321
!
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   322
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   323
createClassImmediate: aClassName superClassName: aSuperClassName instanceVariableNames: instVarNames classVariableNames: classVarNames poolDictionaries: poolDict category: category privateIn: privateInClassName
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   324
    "Creates class immediately and returns the real class"
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   325
    | newClassName change |
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   326
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   327
    newClassName := aClassName.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   328
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   329
    privateInClassName isNil ifTrue: [ 
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   330
        change := (InteractiveAddClassChange definition:
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   331
            aSuperClassName asString, ' subclass:#', aClassName asString, '
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   332
                instanceVariableNames:''', instVarNames asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   333
                classVariableNames:''', classVarNames asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   334
                poolDictionaries:''', poolDict asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   335
                category:''', category asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   336
        ')
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   337
    ] ifFalse: [ 
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   338
        change := (InteractiveAddClassChange definition:
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   339
            aSuperClassName asString, ' subclass:#', aClassName asString, '
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   340
                instanceVariableNames:''', instVarNames asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   341
                classVariableNames:''', classVarNames asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   342
                poolDictionaries:''', poolDict asString, '''
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   343
                privateIn:', privateInClassName asString, '
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   344
        ').
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   345
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   346
        newClassName := privateInClassName asString, '::', aClassName asString.
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   347
    ].
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   348
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   349
    changeManager performChange: change.  
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   350
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   351
    ^ Smalltalk classNamed: newClassName
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   352
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   353
    "Created: / 30-10-2014 / 21:28:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   354
    "Modified: / 02-11-2014 / 16:30:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   355
!
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   356
717
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   357
createClassImmediate: aClassName superClassName: aSuperClassName privateIn: privateInClassName
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   358
    "Creates class immediately and returns the real class"
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   359
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   360
    ^ self createClassImmediate: aClassName superClassName: aSuperClassName instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: '' privateIn: privateInClassName
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   361
63e0da20b676 add create immediate private class in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 706
diff changeset
   362
    "Created: / 30-10-2014 / 21:47:55 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   363
!
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   364
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   365
createMethodImmediate: aClass protocol: aProtocol source: aSource
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   366
    "Much like createClassImmediate:superClassName:, but for method"
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   367
700
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   368
    ^ self createMethodImmediate: aClass protocol: aProtocol source: aSource package: nil
568
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   369
a63d81ed9aa6 fix CustomSourceCodeBuilder redoChanges (has to be made in reversed order)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 556
diff changeset
   370
    "Created: / 15-06-2014 / 16:06:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
700
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   371
    "Modified: / 17-10-2014 / 09:58:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   372
!
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   373
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   374
createMethodImmediate: aClass protocol: aProtocol source: aSource package: aPackageId
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   375
    "Much like createClassImmediate:superClassName:, but for method"
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   376
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   377
    | selector change |
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   378
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   379
    change := InteractiveAddMethodChange compile: aSource in: aClass classified: aProtocol.
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   380
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   381
    (aPackageId notNil and: [ (change class canUnderstand: #package:) ]) ifTrue: [ 
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   382
        change package: aPackageId  
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   383
    ].
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   384
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   385
    changeManager performChange: change.    
700
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   386
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   387
    selector := (Parser parseMethodSpecification: aSource) selector.
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   388
    ^ aClass compiledMethodAt: selector
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   389
55a8d014066f add package parameter to CustomNamespace >> createMethodImmediage...
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 697
diff changeset
   390
    "Created: / 17-10-2014 / 09:53:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
720
33032cf72a9c fix rewriting objects in createImmediate methods in CustomNamespace
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   391
    "Modified: / 02-11-2014 / 16:17:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
637
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   392
!
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   393
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   394
createMethodImmediate: aClass source: aSource
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   395
    "Much like createClassImmediate:superClassName:, but for method"
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   396
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   397
    ^ self createMethodImmediate: aClass protocol: 'protocol' source: aSource
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   398
e3ef3a46c61b add method createMethodImmediate with preset protocol
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 634
diff changeset
   399
    "Created: / 23-08-2014 / 20:17:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   400
! !
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   401
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   402
!CustomNamespace methodsFor:'compiling'!
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   403
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   404
execute
704
340954b48789 better comment in CustomNamespace >> execute
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 700
diff changeset
   405
    "Performs code changes ( add method, add class, rename class... )
340954b48789 better comment in CustomNamespace >> execute
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 700
diff changeset
   406
    so they take in effect ( method is added, class is renamed, ... )
340954b48789 better comment in CustomNamespace >> execute
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 700
diff changeset
   407
    with respect to current change manager implementatin - see CustomChangeManager subclasses."
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   408
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   409
    changeManager performChange: changes
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   410
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   411
    "Created: / 27-04-2014 / 16:30:05 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 664
diff changeset
   412
    "Modified: / 21-09-2014 / 22:34:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
704
340954b48789 better comment in CustomNamespace >> execute
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 700
diff changeset
   413
    "Modified (comment): / 19-10-2014 / 14:30:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   414
!
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   415
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 704
diff changeset
   416
undoChanges
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   417
    "redo all changes made by execute method"
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   418
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 704
diff changeset
   419
    changeManager undoChanges
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   420
705
1eb0878dc85c rename undoChanges to redoChanges, because it actually does undo, in CustomLocalChangeManager, CustomNamespace, CustomRefactoryBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 704
diff changeset
   421
    "Created: / 19-10-2014 / 14:56:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
537
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   422
! !
aa9661877640 CustomSourceCodeBuilder test that comment in a method is preserved
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   423
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   424
!CustomNamespace methodsFor:'initialization'!
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   425
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   426
initialize
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   427
    "Invoked when a new instance is created."
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   428
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   429
    super initialize.
830
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   430
    changeManager := SmallSense::CustomLocalChangeManager new.
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   431
    formatter := SmallSense::CustomRBLocalSourceCodeFormatter new.
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   432
    classModelClass := RBClass.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   433
    methodModelClass := RBMethod.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   434
    sourceCodeGeneratorClass := CustomSourceCodeGenerator.
525
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   435
06b14d49f485 work in progress - create code generator which generates stub methods for missing subclassResponsibility
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 521
diff changeset
   436
    "Created: / 09-04-2014 / 23:44:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
815
0ca40b727a4f Cleanup - remove unfinished implementation of chaining api and default values
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   437
    "Modified: / 05-02-2015 / 22:33:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
830
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   438
    "Modified: / 11-05-2015 / 09:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
515
30d55cc59bf2 - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 514
diff changeset
   439
! !
30d55cc59bf2 - CustomRefactoring
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 514
diff changeset
   440
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   441
!CustomNamespace methodsFor:'testing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   442
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   443
isNamespace
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   444
    ^ true
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   445
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   446
    "Created: / 15-11-2014 / 17:29:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   447
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 721
diff changeset
   448
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 687
diff changeset
   449
!CustomNamespace class methodsFor:'documentation'!
521
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   450
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   451
version_HG
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   452
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   453
    ^ '$Changeset: <not expanded> $'
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   454
! !
9d7c465ae42a Some experimental code for class generation (see CustomCodeGeneratorClassGenerator)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 520
diff changeset
   455