extensions.st
author Jakub Nesveda <jakubnesveda@seznam.cz>
Sun, 25 Jan 2015 16:26:25 +0100
changeset 804 14025d247548
parent 795 944c5812e702
child 805 07ad47e55ce9
permissions -rw-r--r--
Improved code quality/readibility with help of Smalllint
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
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
   224
!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
   225
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
   226
isModelClass
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
   227
    "Tells wheter this class is a model class ( and not real 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
   228
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
   229
    ^ true
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
   230
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
   231
    "Created: / 06-10-2014 / 07:12:50 / 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
   232
! !
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
   233
689
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   234
!RBAbstractClass methodsFor:'queries'!
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
isSubclassOf: aClass
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   237
    "see Behavior >> isSubclassOf: ( same purpose, but for model class )"
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
    self allSuperclassesDo: [ :superclass |
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   240
        "we are testing name here, because the class 
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   241
        can be from another namespace"
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   242
        ((superclass name) = (aClass name)) ifTrue: [ 
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   243
            ^ true
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   244
        ]
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   245
    ].
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   246
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   247
    ^ false
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   248
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   249
    "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
   250
! !
488503cd3baa fixes in TestCase code generators
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 688
diff changeset
   251
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
   252
!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
   253
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
   254
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
   255
    "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
   256
    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
   257
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
   258
    | 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
   259
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
   260
    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
   261
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   262
    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
   263
        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
   264
            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
   265
                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
   266
                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
   267
                    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
   268
                    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
   269
                    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
   270
        ].
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
   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
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   273
    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
   274
        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
   275
            | 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
   276
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
            method := methodDictionary at: removedMethod selector asSymbol ifAbsent: [ nil ].  
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   278
            method 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
   279
                methodDictionary := methodDictionary removeKeyAndCompress: removedMethod selector 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
   280
            ]
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
    ].
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
   283
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   284
    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
   285
        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
   286
            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
   287
        ]
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
   288
    ].
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
   289
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
   290
    ^ 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
   291
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
   292
    "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
   293
    "Modified: / 25-01-2015 / 14:42:56 / 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
   294
! !
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
   295
719
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   296
!RBAbstractClass methodsFor:'enumerating'!
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   297
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   298
methodsDo:aOneArgBlock
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   299
    "see Behavior >> methodsDo:"
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   300
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   301
    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
   302
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   303
    "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
   304
! !
8a4f5889081e add methodsDo: and instAndClassMethodsDo: to RBAbstractClass to support iteration through methods
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 717
diff changeset
   305
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
   306
!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
   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
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
   309
    "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
   310
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
   311
    ^ (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
   312
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
   313
    "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
   314
    "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
   315
! !
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
   316
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
   317
!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
   318
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
   319
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
   320
    "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
   321
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
    ^ 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
   323
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
    "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
   325
! !
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
!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
   328
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
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
   330
    "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
   331
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
    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
   333
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
    "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
   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
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
!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
   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
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
   340
    "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
   341
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   342
    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
   343
    ^ 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
   344
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   345
    "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
   346
! !
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   347
d706c98adeb5 better support for private classes in our model (CustomNamespace) and related classes (RBClass, RBMetaclass)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 752
diff changeset
   348
!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
   349
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   350
package
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   351
    "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
   352
    | package |
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   353
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   354
    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
   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
    (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
   357
        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
   358
    ].
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
    ^ package
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: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
   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
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   367
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
   368
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   369
    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
   370
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   371
    "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
   372
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   373
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   374
!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
   375
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   376
privateClassesAt:aClassNameStringOrSymbol
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   377
    "see Class >> privateClassesAt:"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   378
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   379
    | myName privateClassName |
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   380
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   381
    myName := self name.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   382
    myName isNil ifTrue:[
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   383
        "/ 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
   384
        ^ nil
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
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   387
    privateClassName := (myName, '::' ,aClassNameStringOrSymbol) asSymbol.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   388
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   389
    ^ model classNamed: privateClassName.
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   390
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   391
    "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
   392
    "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
   393
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   394
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   395
!RBAbstractClass methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   396
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
   397
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
   398
    "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
   399
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
    ^ 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
   401
        "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
   402
        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
   403
        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
   404
    ] 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
   405
        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
   406
    ]
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   407
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   408
    "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
   409
! !
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   410
b0c8db244dbd First draft of filtering generators/refactoring in context sub-menu for multiple programming languages
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 778
diff changeset
   411
!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
   412
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   413
realSharedPoolNames
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   414
    "see Behavior >> realSharedPoolNames"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   415
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   416
    ^ #()
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   417
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   418
    "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
   419
    "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
   420
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   421
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   422
!RBAbstractClass methodsFor:'accessing'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   423
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
   424
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
   425
    "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
   426
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
    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
   428
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
    "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
   430
! !
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
!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
   433
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
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
   435
    "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
   436
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
    ^ 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
   438
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
    "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
   440
! !
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
!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
   443
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
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
   445
    "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
   446
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
    ^ 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
   448
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
    "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
   450
! !
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
752
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   452
!RBAbstractClass methodsFor:'queries'!
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   453
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   454
topNameSpace
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   455
    "see ClassDescription >> topNameSpace"
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   456
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   457
    ^ self model
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   458
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   459
    "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
   460
    "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
   461
! !
516a6334136c added poor mans private classes support in AddClassChange
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 733
diff changeset
   462
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
   463
!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
   464
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
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
   466
    "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
   467
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
    ^ 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
   469
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
    "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
   471
! !
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
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
   473
!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
   474
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
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
   476
    "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
   477
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
    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
   479
    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
   480
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
    "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
   482
! !
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
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
   484
!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
   485
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
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
   487
    "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
   488
    | 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
   489
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   490
    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
   491
    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
   492
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
   493
    (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
   494
        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
   495
    ] 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
   496
        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
   497
        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
   498
    ].
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   499
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   500
    ^ 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
   501
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
    "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
   503
    "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
   504
! !
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
!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
   507
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
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
   509
    "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
   510
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
    ^ 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
   512
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
    "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
   514
! !
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
!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
   517
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
   518
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
   519
    "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
   520
    | 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
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
    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
   523
    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
   524
        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
   525
            ^ 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
   526
        ]
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
    ^ 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
   530
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
    "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
   532
! !
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
!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
   535
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
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
   537
    "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
   538
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
    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
   540
        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
   541
        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
   542
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
    "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
   544
    "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
   545
! !
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
!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
   548
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
   549
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
   550
    "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
   551
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
    ^ 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
   553
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
    "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
   555
! !
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
!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
   558
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
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
   560
    "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
   561
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
    ^ 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
   563
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
    "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
   565
! !
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
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
   567
!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
   568
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
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
   570
    "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
   571
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
    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
   573
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   574
    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
   575
        ^ 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
   576
    ].
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
    ^ 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
   578
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
    "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
   580
    "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
   581
! !
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
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
   583
!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
   584
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
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
   586
    "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
   587
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
    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
   589
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
    "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
   591
! !
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
!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
   594
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
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
   596
    "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
   597
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
   598
    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
   599
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
    "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
   601
    "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
   602
! !
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
!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
   605
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
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
   607
    "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
   608
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   609
    ^ 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
   610
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
    "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
   612
    "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
   613
! !
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
!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
   616
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
   617
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
   618
    "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
   619
    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
   620
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
    ^ 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
   622
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
    "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
   624
! !
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
!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
   627
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
   628
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
   629
    "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
   630
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
    | 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
   632
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
    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
   634
        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
   635
        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
   636
            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
   637
        ].    
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
    "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
   640
    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
   641
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   642
    arguments isEmptyOrNil ifTrue: [ 
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   643
        ^ 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
   644
    ].
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
804
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   646
    ^ Array streamContents: [ :s |
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   647
        arguments do: [ :argument |
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   648
            s nextPut: argument name
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   649
        ]  
14025d247548 Improved code quality/readibility with help of Smalllint
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 795
diff changeset
   650
    ]
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
   651
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
    "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
   653
    "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
   654
! !
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
!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
   657
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
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
   659
    "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
   660
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
    ^ 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
   662
        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
   663
        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
   664
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
    "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
   666
! !
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
!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
   669
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
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
   671
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
    ^ 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
   673
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
    "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
   675
! !
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
!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
   678
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
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
   680
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
    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
   682
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
    "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
   684
! !
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
!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
   687
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   688
newSource
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   689
    "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
   690
    ( 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
   691
    | 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
   692
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   693
    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
   694
    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
   695
    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
   696
        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
   697
        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
   698
    ].
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
    "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
   701
    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
   702
    (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
   703
        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
   704
    ].
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
    ^ newSource
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   707
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   708
    "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
   709
    "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
   710
! !
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
!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
   713
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   714
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
   715
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   716
    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
   717
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   718
    "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
   719
! !
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   720
782
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   721
!RBMethod methodsFor:'compiler interface'!
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   722
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   723
programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   724
    "see CompiledCode >> programmingLanguage"
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   725
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   726
    self method notNil ifTrue: [ 
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   727
        ^ self method programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   728
    ].
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
    self mclass notNil ifTrue: [ 
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   731
        ^ self mclass programmingLanguage
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   732
    ].
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
    "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
   735
    ^ SmalltalkLanguage instance
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   736
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   737
    "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
   738
! !
233433804211 Added RBMethod >> programmingLanguage to tell method programming language (Java, Smalltalk ...)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 779
diff changeset
   739
688
6bd18ba5e56c completed - rewriting code generators to replace CustomSourceCodeBuilder, but RBClass, RBMetaclass, RBNamespace and CodeGenerator
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 686
diff changeset
   740
!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
   741
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
   742
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
   743
    "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
   744
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
    ^ 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
   746
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
    "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
   748
! !
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
!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
   751
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
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
   753
    "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
   754
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
    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
   756
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
    "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
   758
! !
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
!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
   761
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
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
   763
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
    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
   765
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
    "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
   767
! !
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
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
   769
!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
   770
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
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
   772
    "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
   773
     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
   774
     ( 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
   775
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
    ^ (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
   777
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
    "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
   779
! !
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
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
   781
!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
   782
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
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
   784
    "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
   785
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
    ^ 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
   787
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
    "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
   789
! !
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
!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
   792
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
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
   794
    "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
   795
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
    ^ 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
   797
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
    "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
   799
! !
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
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
   801
!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
   802
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
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
   804
    "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
   805
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
    ^ 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
   807
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
    "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
   809
! !
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
!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
   812
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
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
   814
    "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
   815
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
    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
   817
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
    "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
   819
! !
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
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
   821
!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
   822
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   823
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
   824
    <menuextension: #classMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   825
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   826
    self customMenuBuilder
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   827
        perspective: CustomPerspective classPerspective;
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   828
        menu: aMenu;
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   829
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   830
        afterMenuItemLabelled: 'Generate';
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   831
        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
   832
        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
   833
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   834
    "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
   835
    "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
   836
! !
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
!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
   839
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   840
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
   841
    <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
   842
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   843
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   844
        perspective: CustomPerspective classPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   845
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   846
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   847
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   848
        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
   849
        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
   850
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
    "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
   852
    "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
   853
! !
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
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   856
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
   857
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
   858
    "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
   859
    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
   860
    <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
   861
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
    | 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
   863
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
    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
   865
        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
   866
            | 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
   867
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
            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
   869
            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
   870
            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
   871
            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
   872
                | 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
   873
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
                "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
   875
                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
   876
                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
   877
            ].
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
            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
   880
                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
   881
                    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
   882
                    selectProtocol: #tests
785
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   883
            ] ifFalse: [
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   884
                | info |
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   885
95aeb39712d5 Translate information if none test case class found in NewSystemBrowser >> classMenuExtensionNavigateToTestCase:
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 783
diff changeset
   886
                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
   887
                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
   888
            ].                                                         
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
   889
        ].
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
    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
   892
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
    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
   894
    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
   895
        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
   896
    ] 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
   897
        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
   898
    ].
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
    "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
   901
    "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
   902
! !
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
!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
   905
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   906
codeViewMenuExtensionCustomRefactorings:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   907
    <menuextension: #codeViewMenu>
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   908
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   909
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   910
        perspective: CustomPerspective codeViewPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   911
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   912
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   913
        afterMenuItemLabelled: 'Refactor';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   914
        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
   915
        buildMenu.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   916
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   917
    "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
   918
    "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
   919
! !
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
!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
   922
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   923
customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   924
    "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
   925
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   926
    ^ CustomMenuBuilder new
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   927
        navigationState: self navigationState;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   928
        resources: resources;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   929
        yourself
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   930
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   931
    "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
   932
! !
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
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   935
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   936
selectorMenuExtensionCustomGenerators:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   937
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   938
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   939
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   940
        perspective: CustomPerspective methodPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   941
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   942
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   943
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   944
        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
   945
        buildMenu.
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   946
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   947
    "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
   948
    "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
   949
    "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
   950
! !
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
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   953
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   954
selectorMenuExtensionCustomRefactorings:aMenu 
649
6f80d672cb35 Fixed extensions in selector menu.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 647
diff changeset
   955
    <menuextension: #selectorMenuCompareGenerateDebugSlice>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   956
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   957
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   958
        perspective: CustomPerspective methodPerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   959
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   960
        submenuLabel: 'Refactor - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   961
        afterMenuItemLabelled: 'Refactor';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   962
        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
   963
        buildMenu.
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   964
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   965
    "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
   966
    "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
   967
    "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
   968
! !
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
!Tools::NewSystemBrowser methodsFor:'menus extensions-custom refactorings'!
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   971
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   972
variablesMenuExtensionCustomGenerators:aMenu 
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   973
    <menuextension: #variablesMenu>
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   974
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   975
    self customMenuBuilder
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   976
        perspective: CustomPerspective instanceVariablePerspective;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   977
        menu: aMenu;
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   978
        submenuLabel: 'Generate - Custom';
795
944c5812e702 Fixed typo in CustomMenuBuilder - rename afterMenuItemLabeled to afterMenuItemLabelled
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 792
diff changeset
   979
        afterMenuItemLabelled: 'Generate';
792
191ce991bfdf Refactored NewSystemBrowser context menu extensions to use new functionality in CustomMenuBuilder
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 790
diff changeset
   980
        buildMenu.
640
60decf64faa8 add menu extension for selectorMenu in NewSystemBrowser
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 534
diff changeset
   981
647
83c6c207a7f1 More menu extensions in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 640
diff changeset
   982
    "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
   983
    "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
   984
! !
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
!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
   987
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
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
   989
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
    ^ '$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
   991
! !