extensions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 11 May 2015 06:44:29 +0100
changeset 829 59bfd92fcef0
parent 817 eed90dc5197b
child 830 1a88f5e65fe2
permissions -rw-r--r--
Test fixes (all test pass now) * Fixed RBClass>>methodDictionary: removedMethods is a set of selectors so no need to send #selector to 'method' (which is instance of Symbol, not Method!) * Copy-paste CodeGeneratorTool>>createSubclassResponsibilityForClass: to CustomSubclassResponsibilityCodeGenerator - must send #sendsAnySelector: (which is defined on RBClass and Class) rather than #sendsAny: (which is defined only on Class)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jn:refactoring_custom' }"!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     3
!AddClassChange methodsFor:'private'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     4
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     5
argumensBySelectorPartsFromMessage: aMessageNode
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     6
    "Returns message arguments as dictionary indexed by selector part name.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     7
    For example: sel01:arg01 sel02:arg02 should be indexed 
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     8
    'sel01:' -> 'arg01',
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
     9
    'sel02:' -> 'arg02' "
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    10
    | argumensBySelectorParts selectorParts |
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    11
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    12
    argumensBySelectorParts := Dictionary new.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    13
    selectorParts := aMessageNode selectorParts ? #().
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    14
    aMessageNode arguments ? #() keysAndValuesDo: [ :key :argument |
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    15
        | part |
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    16
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    17
        part := selectorParts at: key ifAbsent: key.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    18
        part == key ifFalse: [ 
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    19
            "We found appropriate selector part"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    20
            part := part value asSymbol
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    21
        ].
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    22
        argumensBySelectorParts at: part put: argument.    
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    23
    ].
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    24
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    25
    ^ argumensBySelectorParts
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    26
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    27
    "Created: / 16-11-2014 / 14:47:55 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    28
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    29
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    30
!AddClassChange methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    31
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    32
package
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    33
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    34
    ^ package
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    35
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    36
    "Created: / 09-10-2014 / 23:45:53 / 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: 686
diff changeset
    37
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    38
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    39
!AddClassChange methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    40
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    41
package: aPackageName
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    42
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    43
    package := aPackageName
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    44
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    45
    "Created: / 08-10-2014 / 20:07:05 / 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: 686
diff changeset
    46
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    47
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    48
!AddClassChange methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    49
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    50
privateInClassName
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    51
    "Returns privateIn class name (when this class is a private class of another class)"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    52
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    53
    ^ self objectAttributeAt: #privateInClassName
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    54
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    55
    "Created: / 16-11-2014 / 14:18:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    56
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    57
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    58
!AddClassChange methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    59
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    60
privateInClassName:aClassName
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    61
    "see privateInClassName"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    62
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    63
    self objectAttributeAt: #privateInClassName put: aClassName
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    64
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    65
    "Created: / 16-11-2014 / 14:18:34 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    66
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
    67
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    68
!AddMethodChange methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    69
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    70
package: aPackageName    
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    71
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    72
    package := aPackageName
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    73
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    74
    "Created: / 08-10-2014 / 19:59: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: 686
diff changeset
    75
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
    76
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    77
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    78
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    79
allClassVarNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    80
    | variableNames |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    81
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    82
    variableNames := self allClassVariableNames.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    83
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    84
    variableNames isNil ifTrue: [ 
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    85
        ^ #()
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    86
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    87
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    88
    ^ variableNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    89
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    90
    "Created: / 01-06-2014 / 23:40:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    91
    "Modified: / 20-09-2014 / 19:26:24 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    92
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    93
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    94
!RBAbstractClass methodsFor:'enumerating'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    95
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    96
allSuperclassesDo: aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    97
    | superclass |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    98
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
    99
    superclass := self superclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   100
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   101
    superclass notNil ifTrue: [ 
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   102
        superclass withAllSuperclassesDo: aBlock
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   103
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   104
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   105
    "Created: / 21-04-2014 / 19:15:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   106
    "Modified: / 25-01-2015 / 14:42:03 / 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: 647
diff changeset
   107
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   108
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   109
!RBAbstractClass methodsFor:'method accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   110
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   111
compileMethod: anRBMethod
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   112
    "Creates new method for this class with RBClass"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   113
    | change method newSource |
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   114
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   115
    newSource := anRBMethod newSource.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   116
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   117
    change := model 
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   118
        compile: newSource
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   119
        in: self
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   120
        classified: anRBMethod category.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   121
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   122
    change package: anRBMethod package.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   123
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   124
    method := anRBMethod deepCopy 
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   125
        source: newSource;
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   126
        category: anRBMethod category;
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   127
        package: anRBMethod package;
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   128
        model: self model;
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   129
        modelClass: self;
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   130
        yourself.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   131
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   132
    self addMethod: method.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   133
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   134
    ^ change
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   135
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   136
    "Created: / 10-10-2014 / 11:37:58 / 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: 686
diff changeset
   137
    "Modified: / 10-10-2014 / 13:08:59 / 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: 686
diff changeset
   138
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   139
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   140
!RBAbstractClass methodsFor:'accessing - classes'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   141
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   142
compilerClass
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   143
    "Answer a class suitable for compiling a source code in 'my' language"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   144
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   145
    ^ self realClass isNil ifTrue: [
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   146
        "Return Smalltalk compiler, because we do not have multiple programming
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   147
        support in this class (yet)"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   148
        self class compilerClass
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   149
    ] ifFalse: [ 
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   150
        self realClass compilerClass
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   151
    ]
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   152
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   153
    "Created: / 15-11-2014 / 16:58:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   154
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   155
689
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   156
!RBAbstractClass methodsFor:'queries'!
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   157
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   158
inheritsFrom: aClass
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   159
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   160
    ^ self isSubclassOf: aClass.
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   161
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   162
    "Created: / 11-10-2014 / 00:25:29 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   163
! !
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   164
719
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   165
!RBAbstractClass methodsFor:'enumerating'!
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   166
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   167
instAndClassMethodsDo:aOneArgBlock
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   168
    "see Behavior >> instAndClassMethodsDo:"
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   169
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   170
    self theNonMetaclass methodsDo:aOneArgBlock.
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   171
    self theMetaclass methodsDo:aOneArgBlock.
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   172
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   173
    "Created: / 01-11-2014 / 21:35:48 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   174
! !
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   175
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   176
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   177
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   178
instVarNames
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   179
    "Returns instance variable names - STX compatibility"
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   180
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   181
    ^ self instanceVariableNames
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   182
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   183
    "Created: / 29-05-2014 / 23:46:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   184
    "Modified: / 24-09-2014 / 20:36:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   185
    "Modified (comment): / 30-09-2014 / 19:30:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   186
! !
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   187
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   188
!RBAbstractClass methodsFor:'accessing'!
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   189
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   190
instVarNames: aCollectionOfStrings 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   191
    "Set instance variable names - STX compatibility"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   192
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   193
    self instanceVariableNames: aCollectionOfStrings
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   194
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   195
    "Created: / 30-09-2014 / 19:30:58 / 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: 647
diff changeset
   196
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   197
778
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   198
!RBAbstractClass methodsFor:'accessing'!
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   199
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   200
isAbstract: aBoolean
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   201
    "see isAbstract"
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   202
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   203
    self theMetaclass isNil ifTrue: [ 
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   204
        self error: 'This class is not defined in the model.'
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   205
    ].
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   206
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   207
    self theMetaclass objectAttributeAt: #isAbstract put: aBoolean
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   208
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   209
    "Created: / 14-12-2014 / 16:39:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   210
    "Modified: / 14-12-2014 / 18:12:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   211
! !
aa278bcb1d92 fixed wrong guessing that class is abstract in RBAbstractClass >> isAbstract
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 765
diff changeset
   212
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   213
!RBAbstractClass methodsFor:'autoload check'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   214
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   215
isLoaded
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   216
    "Returns true when the class is auto-loaded.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   217
    see Metaclass >> isLoaded"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   218
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   219
    ^ self class isLoaded
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   220
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   221
    "Created: / 15-11-2014 / 17:11:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   222
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   223
689
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   224
!RBAbstractClass methodsFor:'queries'!
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   225
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   226
isSubclassOf: aClass
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   227
    "see Behavior >> isSubclassOf: ( same purpose, but for model class )"
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   228
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   229
    self allSuperclassesDo: [ :superclass |
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   230
        "we are testing name here, because the class 
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   231
        can be from another namespace"
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   232
        ((superclass name) = (aClass name)) ifTrue: [ 
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   233
            ^ true
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   234
        ]
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   235
    ].
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   236
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   237
    ^ false
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   238
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   239
    "Created: / 11-10-2014 / 00:16:42 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   240
! !
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   241
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   242
!RBAbstractClass methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   243
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   244
methodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   245
    "Stub method, returns real class MethodDictionary, although full MethodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   246
    implementation would be better here."
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   247
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   248
    | methodDictionary |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   249
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   250
    methodDictionary := MethodDictionary new.
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   251
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   252
    self realClass notNil ifTrue: [
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   253
        self realClass methodDictionary do: [ :method | 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   254
            methodDictionary := methodDictionary 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   255
                at: method selector asSymbol 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   256
                putOrAppend: (RBMethod 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   257
                    for: self 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   258
                    fromMethod: method 
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   259
                    andSelector: method selector asSymbol)
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   260
        ].
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   261
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   262
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   263
    removedMethods notNil ifTrue: [
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   264
        removedMethods do: [ :removedMethod | 
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   265
            | method |
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   266
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 817
diff changeset
   267
            method := methodDictionary at: removedMethod asSymbol ifAbsent: [ nil ].  
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   268
            method notNil ifTrue: [
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 817
diff changeset
   269
                methodDictionary := methodDictionary removeKeyAndCompress: removedMethod asSymbol.
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   270
            ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   271
        ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   272
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   273
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   274
    newMethods notNil ifTrue: [
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   275
        newMethods do: [ :newMethod |
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   276
            methodDictionary := methodDictionary at: newMethod selector asSymbol putOrAppend: newMethod.
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   277
        ]
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   278
    ].
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   279
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   280
    ^ methodDictionary
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   281
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   282
    "Created: / 28-09-2014 / 22:57:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   283
    "Modified: / 25-01-2015 / 14:42:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 817
diff changeset
   284
    "Modified: / 10-05-2015 / 16:07:20 / Jan Vrany <jan.vrany@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: 647
diff changeset
   285
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   286
719
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   287
!RBAbstractClass methodsFor:'enumerating'!
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   288
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   289
methodsDo:aOneArgBlock
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   290
    "see Behavior >> methodsDo:"
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   291
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   292
    self methodDictionary do:aOneArgBlock
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   293
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   294
    "Created: / 02-11-2014 / 09:47:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   295
! !
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   296
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   297
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   298
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   299
nameWithoutPrefix
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   300
    "see ClassDescription >> nameWithoutPrefix"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   301
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   302
    ^ (Smalltalk at: #Class) nameWithoutPrefix: name
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   303
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   304
    "Created: / 03-08-2014 / 23:29:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   305
    "Modified: / 20-09-2014 / 19:21:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   306
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   307
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   308
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   309
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   310
owningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   311
    "see Behavior >> owningClass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   312
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   313
    ^ self theMetaclass owningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   314
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   315
    "Created: / 29-11-2014 / 13:17:10 / 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: 752
diff changeset
   316
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   317
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   318
!RBAbstractClass methodsFor:'accessing'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   319
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   320
owningClass: aClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   321
    "Sets the owning class which is actually stored in the metaclass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   322
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   323
    self theMetaclass owningClass: aClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   324
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   325
    "Created: / 29-11-2014 / 13:21:00 / 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: 752
diff changeset
   326
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   327
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   328
!RBAbstractClass methodsFor:'queries'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   329
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   330
owningClassOrYourself
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   331
    "see Behavior >> owningClassOrYourself"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   332
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   333
    self owningClass notNil ifTrue:[^ self topOwningClass].
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   334
    ^ self
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   335
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   336
    "Created: / 29-11-2014 / 13:44:45 / 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: 752
diff changeset
   337
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   338
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   339
!RBAbstractClass methodsFor:'accessing'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   340
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   341
package
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   342
    "see Class >> package ( same purpose, but for model class )"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   343
    | package |
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   344
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   345
    package := self objectAttributeAt: #package.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   346
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   347
    (package isNil and: [ self realClass notNil ]) ifTrue: [ 
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   348
        package := self realClass package.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   349
    ].
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   350
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   351
    ^ package
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   352
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   353
    "Created: / 09-10-2014 / 23:12:35 / 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: 686
diff changeset
   354
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   355
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   356
!RBAbstractClass methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   357
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   358
package: aPackage
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   359
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   360
    self objectAttributeAt: #package put: aPackage
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   361
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   362
    "Created: / 09-10-2014 / 23:12:14 / 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: 686
diff changeset
   363
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   364
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   365
!RBAbstractClass methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   366
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   367
privateClassesAt:aClassNameStringOrSymbol
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   368
    "see Class >> privateClassesAt:"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   369
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   370
    | myName privateClassName |
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   371
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   372
    myName := self name.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   373
    myName isNil ifTrue:[
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   374
        "/ no name - there cannot be a corresponding private class
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   375
        ^ nil
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   376
    ].
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   377
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   378
    privateClassName := (myName, '::' ,aClassNameStringOrSymbol) asSymbol.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   379
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   380
    ^ model classNamed: privateClassName.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   381
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   382
    "Created: / 15-11-2014 / 17:15:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   383
    "Modified: / 16-11-2014 / 11:49:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   384
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   385
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   386
!RBAbstractClass methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   387
779
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   388
programmingLanguage
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   389
    "Answer a language instance in which is this class programmed"
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   390
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   391
    ^ self realClass isNil ifTrue: [
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   392
        "Return Smalltalk language, because we do not have multiple programming
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   393
        support in this class (yet)"
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   394
        self class programmingLanguage
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   395
    ] ifFalse: [ 
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   396
        self realClass programmingLanguage
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   397
    ]
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   398
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   399
    "Created: / 22-12-2014 / 20:43:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   400
! !
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   401
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   402
!RBAbstractClass methodsFor:'accessing'!
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   403
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   404
realSharedPoolNames
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   405
    "see Behavior >> realSharedPoolNames"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   406
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   407
    ^ #()
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   408
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   409
    "Created: / 15-11-2014 / 17:19:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   410
    "Modified: / 16-11-2014 / 16:37:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   411
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   412
805
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   413
!RBAbstractClass methodsFor:'method accessing'!
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   414
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   415
sourceCodeAt: aSelector
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   416
    "see Behavior >> sourceCodeAt:"
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   417
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   418
    ^ self sourceCodeFor: aSelector
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   419
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   420
    "Created: / 31-01-2015 / 19:05:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   421
! !
07ad47e55ce9 Added method returning source code at selector in RBAbstractClass >> sourceCodeAt:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 804
diff changeset
   422
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   423
!RBAbstractClass methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   424
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   425
superclassName: aName
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   426
    "Assign superclass by its name"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   427
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   428
    self superclass: (self model classNamed: aName asSymbol)
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   429
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   430
    "Created: / 28-09-2014 / 22:53:46 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   431
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   432
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   433
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   434
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   435
theMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   436
    "alias for theMetaClass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   437
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   438
    ^ self theMetaClass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   439
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   440
    "Created: / 26-09-2014 / 16:26:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   441
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   442
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   443
!RBAbstractClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   444
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   445
theNonMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   446
    "alias for theNonMetaClass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   447
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   448
    ^ self theNonMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   449
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   450
    "Created: / 26-09-2014 / 16:36:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   451
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   452
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   453
!RBAbstractClass methodsFor:'queries'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   454
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   455
topNameSpace
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   456
    "see ClassDescription >> topNameSpace"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   457
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   458
    ^ self model
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   459
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   460
    "Created: / 15-11-2014 / 17:26:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   461
    "Modified (comment): / 16-11-2014 / 16:58:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   462
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   463
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   464
!RBAbstractClass methodsFor:'queries'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   465
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   466
topOwningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   467
    "see Behavior >> topOwningClass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   468
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   469
    ^ self theMetaclass topOwningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   470
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   471
    "Created: / 29-11-2014 / 13:48:15 / 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: 752
diff changeset
   472
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   473
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   474
!RBAbstractClass methodsFor:'enumerating'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   475
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   476
withAllSuperclassesDo:aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   477
    "evaluate aBlock for the class and all of its superclasses"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   478
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   479
    aBlock value:self.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   480
    self allSuperclassesDo:aBlock
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   481
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   482
    "Created: / 29-09-2014 / 22:48:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   483
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   484
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   485
!RBClass methodsFor:'compiling'!
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   486
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   487
compile
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   488
    "Updates class definition in the namespace along with code changes"
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   489
    | change newClass |
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   490
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   491
    change := model defineClass: self definitionString.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   492
    change package: self package.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   493
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: 719
diff changeset
   494
    (model respondsTo: #putModelClass:) 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: 719
diff changeset
   495
        model putModelClass: self  
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 719
diff changeset
   496
    ] ifFalse: [ 
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 719
diff changeset
   497
        newClass := model classNamed: self 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: 719
diff changeset
   498
        newClass package: self package
f76a4c53af1e fix compiled model classes not in model, but different model class when calling the RBClass >> compile method
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 719
diff changeset
   499
    ].
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   500
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   501
    ^ change
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   502
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   503
    "Created: / 25-09-2014 / 22:31:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
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: 719
diff changeset
   504
    "Modified: / 04-11-2014 / 00:06:49 / 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: 647
diff changeset
   505
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   506
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   507
!RBClass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   508
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   509
theNonMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   510
    "alias for theNonMetaclass - squeak compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   511
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   512
    ^ self theNonMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   513
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   514
    "Created: / 26-09-2014 / 16:50:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   515
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   516
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   517
!RBMetaclass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   518
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   519
owningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   520
    "see PrivateMetaclass >> owningClass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   521
    | owningClass |
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   522
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   523
    owningClass := self objectAttributeAt: #owningClass.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   524
    owningClass isNil ifTrue: [ 
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   525
        self realClass notNil ifTrue: [ 
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   526
            ^ self model classFor: self realClass owningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   527
        ]
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   528
    ].
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   529
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   530
    ^ owningClass.
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   531
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   532
    "Created: / 29-11-2014 / 02:20:07 / 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: 752
diff changeset
   533
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   534
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   535
!RBMetaclass methodsFor:'accessing'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   536
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   537
owningClass: aClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   538
    "see owningClass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   539
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   540
    self 
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   541
        objectAttributeAt: #owningClass 
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   542
        put: (self model classFor: aClass theNonMetaclass)
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   543
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   544
    "Created: / 29-11-2014 / 02:23:21 / 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: 752
diff changeset
   545
    "Modified: / 29-11-2014 / 13:38:15 / 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: 752
diff changeset
   546
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   547
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   548
!RBMetaclass methodsFor:'accessing'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   549
681
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   550
theMetaClass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   551
    "alias for metaclass - sqeak compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   552
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   553
    ^ self metaclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   554
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   555
    "Created: / 26-09-2014 / 21:32:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   556
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   557
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   558
!RBMetaclass methodsFor:'accessing'!
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   559
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   560
theMetaclass
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   561
    "alias for metaclass - STX compatibility"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   562
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   563
    ^ self metaclass.
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   564
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   565
    "Created: / 26-09-2014 / 21:28:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   566
! !
34c671a3cf59 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 647
diff changeset
   567
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   568
!RBMetaclass methodsFor:'queries'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   569
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   570
topOwningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   571
    "see PrivateMetaclass >> topOwningClass"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   572
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   573
    self owningClass isNil ifTrue:[^ nil].
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   574
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   575
    self owningClass owningClass notNil ifTrue:[
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   576
        ^ self owningClass topOwningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   577
    ].
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   578
    ^ self owningClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   579
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   580
    "Created: / 29-11-2014 / 13:52:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   581
    "Modified: / 25-01-2015 / 15:24:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   582
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   583
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   584
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   585
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   586
category: aCategoryName
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   587
    "Sets in which category/protocol does the method belongs within a class"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   588
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   589
    self objectAttributeAt: #category put: aCategoryName.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   590
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   591
    "Created: / 06-10-2014 / 07:54:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   592
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   593
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   594
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   595
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   596
class: aClass
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   597
    "Helper for enabling usage of either real class or RBClass"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   598
730
a18417c3cee7 since we keep same class instance in RBClass >> compile we can use already defined method in RBNamespace for RBMethod >> class:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 723
diff changeset
   599
    self modelClass: (self model classFor: aClass)
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   600
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   601
    "Created: / 05-10-2014 / 21:04:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
730
a18417c3cee7 since we keep same class instance in RBClass >> compile we can use already defined method in RBNamespace for RBMethod >> class:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 723
diff changeset
   602
    "Modified (comment): / 08-11-2014 / 13:26:35 / 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: 685
diff changeset
   603
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   604
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   605
!RBMethod methodsFor:'compiling'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   606
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   607
compile
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   608
    "Modifies/adds method in the model class."
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   609
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   610
    ^ self modelClass compileMethod: self
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   611
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   612
    "Created: / 06-10-2014 / 11:11:30 / 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: 686
diff changeset
   613
    "Modified: / 10-10-2014 / 12:28:06 / 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: 685
diff changeset
   614
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   615
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   616
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   617
765
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   618
mclass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   619
    "see Method >> mclass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   620
    Returns instace of RBClass, RBMetaclass or nil when unknown"
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   621
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   622
    ^ self modelClass
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   623
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   624
    "Created: / 27-11-2014 / 23:20:25 / 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: 752
diff changeset
   625
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   626
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   627
!RBMethod methodsFor:'accessing'!
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   628
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   629
methodArgNames
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   630
    "Returns collection of method argument names"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   631
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   632
    | methodNode arguments |
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   633
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   634
    methodNode := RBParser 
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   635
        parseMethod: self source 
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   636
        onError: [ :str :pos | 
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   637
            self error: 'Cannot parse: ', str, ' at pos: ', pos asString 
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   638
        ].    
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   639
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   640
    "Transform arguments to what Method returns - keep compatibility"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   641
    arguments := methodNode arguments.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   642
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   643
    arguments isEmptyOrNil ifTrue: [ 
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   644
        ^ nil
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   645
    ].
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   646
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   647
    ^ Array streamContents: [ :s |
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   648
        arguments do: [ :argument |
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   649
            s nextPut: argument name
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   650
        ]  
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   651
    ]
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   652
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   653
    "Created: / 07-10-2014 / 20:18:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   654
    "Modified: / 25-01-2015 / 15:35:21 / 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: 685
diff changeset
   655
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   656
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   657
!RBMethod methodsFor:'queries'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   658
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   659
methodDefinitionTemplate
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   660
    "see Method >> methodDefinitionTemplate"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   661
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   662
    ^ Method
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   663
        methodDefinitionTemplateForSelector:self selector
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   664
        andArgumentNames:self methodArgNames
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   665
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   666
    "Created: / 07-10-2014 / 20:18:53 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   667
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   668
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   669
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   670
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   671
model
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   672
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   673
    ^ self objectAttributeAt: #model
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   674
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   675
    "Created: / 05-10-2014 / 20:33:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   676
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   677
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   678
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   679
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   680
model: anRBSmalltalk
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   681
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   682
    self objectAttributeAt: #model put: anRBSmalltalk
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   683
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   684
    "Created: / 05-10-2014 / 20:32:38 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   685
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   687
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   688
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   689
newSource
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   690
    "Returns new source code with performed modifications by CodeGenerator
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   691
    ( replace: something with: anotherthing and custom formatting)."
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   692
    | newSource generator |
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   693
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   694
    newSource := self source.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   695
    generator := self sourceCodeGenerator.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   696
    generator notNil ifTrue: [ 
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   697
        generator source: newSource.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   698
        newSource := generator newSource.
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   699
    ].
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   700
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   701
    "Fixes test CustomRBMethodTests >> test_compile_with_code_generator
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   702
    when none selector and method is given then parse the selector from new source code"
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   703
    (selector isNil and: [ compiledMethod isNil ] and: [ newSource notNil ]) ifTrue: [ 
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   704
        selector := (Parser parseMethodSpecification: newSource) selector
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   705
    ].
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   706
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   707
    ^ newSource
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   708
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   709
    "Created: / 10-10-2014 / 12:23:20 / 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: 686
diff changeset
   710
    "Modified (comment): / 10-10-2014 / 15:31:25 / 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: 686
diff changeset
   711
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   712
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   713
!RBMethod methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   714
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   715
package: aPackage
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   716
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   717
    self objectAttributeAt: #package put: aPackage
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   718
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   719
    "Created: / 10-10-2014 / 11:12:26 / 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: 686
diff changeset
   720
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   721
782
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   722
!RBMethod methodsFor:'compiler interface'!
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   723
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   724
programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   725
    "see CompiledCode >> programmingLanguage"
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   726
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   727
    self method notNil ifTrue: [ 
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   728
        ^ self method programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   729
    ].
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   730
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   731
    self mclass notNil ifTrue: [ 
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   732
        ^ self mclass programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   733
    ].
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   734
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   735
    "None programming language found, assume Smalltalk as default"
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   736
    ^ SmalltalkLanguage instance
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   737
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   738
    "Created: / 26-12-2014 / 11:59:24 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   739
! !
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   740
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   741
!RBMethod methodsFor:'accessing'!
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   742
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   743
protocol
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   744
    "Returns in which category/protocol does the method belongs within a class"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   745
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   746
    ^ self category
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   747
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   748
    "Created: / 06-10-2014 / 07:46:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   749
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   750
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   751
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   752
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   753
protocol: aProtocolName
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   754
    "Sets in which category/protocol does the method belongs within a class"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   755
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   756
    self category: aProtocolName.
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   757
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   758
    "Created: / 06-10-2014 / 07:56:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   759
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   760
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   761
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   762
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   763
replace: placeholder with: code
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   764
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   765
    self sourceCodeGenerator replace: placeholder with: code
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   766
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   767
    "Created: / 06-10-2014 / 08:58:31 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   768
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   769
684
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   770
!RBMethod methodsFor:'queries'!
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   771
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   772
sends:selectorSymbol1 or:selectorSymbol2
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   773
    "Returns true, if this method contains a message-send
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   774
     to either selectorSymbol1 or selectorSymbol2.
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   775
     ( non-optimized version of Message>>sends:or: )"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   776
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   777
    ^ (self sendsSelector: selectorSymbol1) or: [ self sendsSelector: selectorSymbol2 ]
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   778
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   779
    "Created: / 04-10-2014 / 00:01:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   780
! !
07bbc12ffdd6 work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 681
diff changeset
   781
686
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   782
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   783
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   784
sourceCodeGenerator
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   785
    "Returns helper tool for method source code manipulation like formatting and search & replace"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   786
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   787
    ^ self objectAttributeAt: #sourceCodeGenerator
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   788
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   789
    "Created: / 06-10-2014 / 08:33:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   790
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   791
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   792
!RBMethod methodsFor:'accessing'!
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   793
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   794
sourceCodeGenerator: aSourceCodeGenerator
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   795
    "Set ... see method sourceCodeGenerator"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   796
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   797
    ^ self objectAttributeAt: #sourceCodeGenerator put: aSourceCodeGenerator
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   798
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   799
    "Created: / 06-10-2014 / 08:37:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   800
! !
12e570ea6c6e work in progress - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 685
diff changeset
   801
731
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   802
!RefactoryChange methodsFor:'accessing'!
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   803
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   804
model
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   805
    "Returns reference to RBNamespace for retrieving model classes (RBClass, RBMetaclass)"
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   806
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   807
    ^ self objectAttributeAt: #model
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   808
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   809
    "Created: / 08-11-2014 / 14:00:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   810
! !
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   811
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   812
!RefactoryChange methodsFor:'accessing'!
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   813
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   814
model: aModel
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   815
    "see model"
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   816
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   817
    self objectAttributeAt: #model put: aModel
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   818
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   819
    "Created: / 08-11-2014 / 14:00:33 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   820
! !
6ec82b81a246 fix class changes not working with non existing classes defined as model classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 730
diff changeset
   821
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   822
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   823
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   824
classMenuExtensionCustomGenerators:aMenu 
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   825
    <menuextension: #classMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   826
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   827
    self customMenuBuilder
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   828
        perspective: CustomPerspective classPerspective;
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   829
        menu: aMenu;
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   830
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   831
        afterMenuItemLabelled: 'Generate';
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   832
        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomCodeGenerator ];
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   833
        buildMenu.
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   834
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   835
    "Created: / 26-08-2014 / 10:21:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   836
    "Modified: / 04-01-2015 / 15:08:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
733
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   837
! !
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   838
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   839
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   840
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   841
classMenuExtensionCustomRefactorings: aMenu 
733
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   842
    <menuextension: #classMenu>
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   843
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   844
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   845
        perspective: CustomPerspective classPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   846
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   847
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   848
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   849
        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   850
        buildMenu.
733
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   851
bad42d8d1161 add ability to use refactory class changes for non existing class described by model class
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 731
diff changeset
   852
    "Created: / 08-11-2014 / 21:24:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   853
    "Modified: / 04-01-2015 / 15:08:31 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   854
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   855
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   856
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   857
783
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   858
classMenuExtensionNavigateToTestCase: aMenu
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   859
    "Adds menu item to class list window and tries to guess test case class
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   860
    name. If test case class exists then opens a new tab with this class selected."
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   861
    <menuextension: #classMenu>
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   862
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   863
    | item index |
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   864
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   865
    item := MenuItem label: (resources string: 'Open Test Case Class') 
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   866
        itemValue: [ 
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   867
            | className testClassName testClass |
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   868
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   869
            className := self theSingleSelectedClass theNonMetaclass name.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   870
            testClassName := (className, 'Tests') asSymbol.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   871
            testClass := environment at: testClassName ifAbsent: nil.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   872
            testClass isNil ifTrue: [ 
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   873
                | extensionTestClassName |
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   874
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   875
                "Small hack for my extension test cases"
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   876
                extensionTestClassName := ('Custom', className, 'Tests') asSymbol.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   877
                testClass := environment at: extensionTestClassName ifAbsent: nil.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   878
            ].
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   879
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   880
            testClass notNil ifTrue: [ 
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   881
                self createBuffer; 
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   882
                    switchToClass: testClass;
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   883
                    selectProtocol: #tests
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   884
            ] ifFalse: [
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   885
                | info |
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   886
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   887
                info := resources string: 'Test Case named %1 not found'.
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   888
                self information: (info bindWith: testClassName)
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   889
            ].                                                         
783
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   890
        ].
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   891
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   892
    item enabled: [ self theSingleSelectedClass notNil ].
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   893
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   894
    index := aMenu indexOfMenuItemForWhich:[:each | each label = 'Generate' ].
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   895
    index ~~ 0 ifTrue:[
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   896
        aMenu addItem:item beforeIndex:index + 1.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   897
    ] ifFalse:[
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   898
        aMenu addItem:item.
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   899
    ].
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   900
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   901
    "Created: / 26-12-2014 / 16:54:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   902
    "Modified: / 27-12-2014 / 19:01:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
783
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   903
! !
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   904
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   905
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
5248328a4ac3 Added menu item named "Open Test Case Class" to browser class list context menu.
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 782
diff changeset
   906
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   907
codeViewMenuExtensionCustomRefactorings:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   908
    <menuextension: #codeViewMenu>
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   909
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   910
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   911
        perspective: CustomPerspective codeViewPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   912
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   913
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   914
        afterMenuItemLabelled: 'Refactor';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   915
        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   916
        buildMenu.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   917
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   918
    "Created: / 26-08-2014 / 22:44:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   919
    "Modified: / 04-01-2015 / 15:08:36 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   920
! !
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   921
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   922
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   923
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   924
customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   925
    "Returns initialized instance of CustomMenuBuilder"
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   926
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   927
    ^ CustomMenuBuilder new
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   928
        navigationState: self navigationState;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   929
        resources: resources;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   930
        yourself
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   931
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   932
    "Created: / 29-12-2014 / 00:04:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   933
! !
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   934
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   935
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   936
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   937
selectorMenuExtensionCustomGenerators:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   938
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   939
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   940
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   941
        perspective: CustomPerspective methodPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   942
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   943
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   944
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   945
        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomCodeGenerator ];
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   946
        buildMenu.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   947
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   948
    "Created: / 26-08-2014 / 10:18:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   949
    "Modified: / 05-09-2014 / 11:28:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   950
    "Modified: / 04-01-2015 / 15:08:40 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   951
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   952
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   953
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   954
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   955
selectorMenuExtensionCustomRefactorings:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   956
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   957
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   958
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   959
        perspective: CustomPerspective methodPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   960
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   961
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   962
        afterMenuItemLabelled: 'Refactor';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   963
        generatorOrRefactoringFilter: [ :generatorOrRefactoring | generatorOrRefactoring isCustomRefactoring ];
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   964
        buildMenu.
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   965
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   966
    "Created: / 24-08-2014 / 15:23:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   967
    "Modified: / 05-09-2014 / 11:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   968
    "Modified: / 04-01-2015 / 15:08:46 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   969
! !
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   970
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   971
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   972
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   973
variablesMenuExtensionCustomGenerators:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   974
    <menuextension: #variablesMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   975
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   976
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   977
        perspective: CustomPerspective instanceVariablePerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   978
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   979
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   980
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   981
        buildMenu.
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   982
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   983
    "Created: / 26-08-2014 / 10:21:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   984
    "Modified: / 04-01-2015 / 15:08:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
506
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   985
! !
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   986
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   987
!jn_refactoring_custom class methodsFor:'documentation'!
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   988
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   989
extensionsVersion_HG
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   990
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   991
    ^ '$Changeset: <not expanded> $'
b611cc119554 Added support for custom menu building and injecting into class browser's menus.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   992
! !