JavaPackage.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18201 667dba93cccc
child 19017 2bc24e4f3e8a
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17052
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
			    SWING Research Group, Czech Technical University in Prague
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 This software is furnished under a license and may be used
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
 hereby transferred.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
     see the differences between this version and version stx:libjava
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
     as of 1.9.2010
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ Package: 'stx:libbasic' }"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
NameSpace subclass:#JavaPackage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	instanceVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'Languages-Java-Support'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!JavaPackage class methodsFor:'documentation'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
copyright
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
 New code and modifications done at SWING Research Group [1]:
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
			    SWING Research Group, Czech Technical University in Prague
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
 This software is furnished under a license and may be used
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
 only in accordance with the terms of that license and with the
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
 be provided or otherwise made available to, or used by, any
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
 other person.  No title to or ownership of the software is
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
 hereby transferred.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
 [1] Code written at SWING Research Group contains a signature
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     of one of the above copright owners. For exact set of such code,
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     see the differences between this version and version stx:libjava
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     as of 1.9.2010
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!JavaPackage class methodsFor:'initialization'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
initialize
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    "Create JAVA namespace (for easy class access)"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    Class withoutUpdatingChangesDo:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
	     self name: #JAVA
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    "Created: / 28-02-2012 / 19:33:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!JavaPackage class methodsFor:'instance creation'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
fullName:fullNameSpaceName
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    "given a possibly nested name of a namespace, create all required
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
     intermediate spaces (if not already existing) and return the
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
     bottom-level space."
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "/ break it up, check for all intermediate spaces to exist
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    "/ create them as required.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    |list thisNamespace|
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    (fullNameSpaceName includes:$:) ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        "/ old style
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
        list := fullNameSpaceName asCollectionOfSubstringsSeparatedByAll:'::'.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
        "/ new style
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
        list := fullNameSpaceName asCollectionOfSubstringsSeparatedBy:$..
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "/ now, look and create 'em
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    thisNamespace := nil.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    list do:[:aName |
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
        |key x|
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
        key := aName asSymbol.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
        thisNamespace isNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
            (Smalltalk includesKey:key) ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
                thisNamespace := Smalltalk at:key.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
                thisNamespace notNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
                    thisNamespace isBehavior ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
                         self error:'name conflict: java package ' , aName , ' vs. global with the same name'.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
                    ].
18201
667dba93cccc Fix in JavaPackage: relax sanity check in JavaPackage>>fullName:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17055
diff changeset
   103
                    (thisNamespace ~~ JAVA and:[thisNamespace isJavaPackage not and:[(thisNamespace name startsWith: #'JAVA_') not]]) ifTrue:[
17052
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
                        self error:'name conflict: non-java package ' , aName , 'aleady exists'.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
                    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
                ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
            ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
            thisNamespace isNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
                key == #JAVA ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
                    thisNamespace := self name: #JAVA.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
                ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
                    self breakPoint: #jv.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
                    thisNamespace := self name:key
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
                ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
            ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
        ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
            thisNamespace isNameSpace ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
                x := thisNamespace at:key.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
            ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
                thisNamespace isBehavior ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
                    x := thisNamespace privateClassesAt:key.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
                ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
            ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
            x isNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
                x :=
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
                    self subclass:key
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
                       instanceVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
                       classVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
                       poolDictionaries:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
                       privateIn:thisNamespace.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
                "/ nameSpaces are not in any package (yet)
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
                x setPackage:nil.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
            ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
            thisNamespace := x.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
        ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    ^ thisNamespace
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
    "Created: / 08-11-1996 / 13:41:59 / cg"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    "Modified: / 04-01-1997 / 16:50:59 / cg"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "Modified: / 13-11-2014 / 16:52:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
name:aStringOrSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    "create a new nameSpace, named aStringOrSymbol.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
     Notice, that the nameSpace is created in the current one -
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
     dont get confused; we recommend, not to nest them too much."
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    |currentNameSpace newNameSpace existing ok nameSym fullName|
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    ok := aStringOrSymbol first isLetter.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    ok ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
        (aStringOrSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
            findFirst:[:ch | (ch isLetterOrDigit or:[ch == $_]) not]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
            startingAt:2) ~~ 0
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
        ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
            ok := false.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    ok ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
        self error:'invalid namespace name:''' , aStringOrSymbol printString , ''' (must be a valid identifier)'.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    nameSym := aStringOrSymbol asSymbol.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    self == JavaPackage ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
        "/ currentNameSpace := Class nameSpaceQuerySignal query.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
        currentNameSpace isNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
            currentNameSpace := Smalltalk
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
        ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        fullName := nameSym
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
        currentNameSpace := self.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
        fullName := (self name , '::' , nameSym) asSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    (existing := currentNameSpace at:nameSym) notNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
        ^ existing
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
    newNameSpace := self
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
        subclass:fullName
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
        instanceVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
        classVariableNames:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
        poolDictionaries:''
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
        category:'uncategorized namespace'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
        inEnvironment:Smalltalk.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
    "/ nameSpaces are not in any package
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    newNameSpace notNil ifTrue:[newNameSpace setPackage:nil].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    ^ newNameSpace
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
    "
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
     NameSpace name:'foo'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
     (NameSpace name:'foo') category:'my name space'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
     foo at:#bar put:(Metaclass new new)
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
     (NameSpace name:'foo') name:'bar'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    "
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    "
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
     NameSpace name:'an-invalid++name'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
     NameSpace name:'another:invalidName'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
     NameSpace name:'another::invalidName'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    "
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    "Modified: / 14-09-1997 / 09:46:59 / cg"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    "Modified: / 18-03-1999 / 18:24:13 / stefan"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    "Created: / 28-02-2012 / 19:29:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
!JavaPackage class methodsFor:'accessing'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
compiler
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    ^ self == JavaPackage ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
         super compiler
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
         JavaPackage class basicNew setName: (self name , '::compiler') asSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    "Created: / 24-09-2013 / 02:33:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
source
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    ^ self == JavaPackage ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
         super source
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
    ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
         JavaPackage class basicNew setName: (self name , '::source') asSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    "Created: / 24-09-2013 / 02:34:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
!JavaPackage class methodsFor:'error handling'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
doesNotUnderstand: aMessage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    | sel classOrPackage |
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
17055
9c4f269a8383 Fixes after moving to stx:libbasic
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17052
diff changeset
   237
    Java isNil ifTrue:[
17052
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
        "/ STX:LIBJAVA not loaded
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
        ^ super doesNotUnderstand: aMessage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
    sel := aMessage selector.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
    classOrPackage := self at: sel ifAbsent:[ nil ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    classOrPackage isNil ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
        sel numArgs ~~ 0 ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
            super doesNotUnderstand: aMessage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
        ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
            sel first isLowercase ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
                classOrPackage := JavaPackage class basicNew setName: (self name , '::' , sel) asSymbol
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
            ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
                | fullName |
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
                self == JAVA
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
                                ifTrue:[ fullName := sel ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
                                ifFalse:[ fullName := (((self name asCollectionOfSubstringsSeparatedByAll:'::') allButFirst asStringWith:$/) , '/' , sel). ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
"/                classOrPackage := JavaClassAccessor fullName: fullName
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
                classOrPackage := Java classForName: fullName.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
            ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
        ]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    ^ classOrPackage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
    "Created: / 28-02-2012 / 20:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
    "Modified (format): / 13-11-2014 / 16:53:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
!JavaPackage class methodsFor:'fileOut'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
fileOutDefinitionOn:aStream
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
    "redefined to generate another definition message"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
    self == JavaPackage ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
        self basicFileOutDefinitionOn: aStream withNameSpace: false.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    ] ifFalse:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
        aStream nextPutAll:('JavaPackage name:' , self name storeString)
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    "Created: / 24-03-2009 / 15:56:17 / karpij1 <karpij1@fel.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    "Modified: / 04-12-2011 / 12:19:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
!JavaPackage class methodsFor:'printing & storing'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
displayString
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
    "return a printed represenation - here, a reminder is appended,
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
     that this is not a regular class"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
    self == JavaPackage ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
        ^ self name
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
    self == JAVA ifTrue:[
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
        ^ 'JAVA /* Java package root */'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
    ].
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
    ^ self name , ' /* Java package */'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
    "Created: / 08-11-1996 / 21:37:24 / cg"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
    "Modified: / 20-12-1996 / 15:11:31 / cg"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
    "Created: / 28-02-2012 / 19:07:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
!JavaPackage class methodsFor:'queries'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
isJavaPackage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
    "Anser true, if receiver is a java package. My subclasses are java packages"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    ^self ~~ JavaPackage
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
        and:[self name ~~ #JAVA
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
        and:[(self name includes: $:)]]
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
    "Created: / 04-12-2011 / 12:22:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
    "Modified: / 02-09-2013 / 17:52:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
isNameSpace
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
    "return true, if the receiver is a nameSpace.
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
     Unconditionally true here for subclasses - my subclasses are namespaces"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    ^ self ~~ JavaPackage .
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
isRealNameSpace
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
    "return true, if the receiver is a nameSpace, but not Smalltalk (which is also a class).
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
     Unconditionally true here for subclasses - my subclasses are namespaces"
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
    ^ self ~~ JavaPackage .
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
!JavaPackage class methodsFor:'documentation'!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
version_HG
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
    ^ '$Changeset: <not expanded> $'
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
!
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
version_SVN
17055
9c4f269a8383 Fixes after moving to stx:libbasic
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17052
diff changeset
   336
    ^ '$Id: JavaPackage.st,v 1.2 2014-11-14 09:52:45 vrany Exp $'
17052
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
! !
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
e3e0c36a3f2c initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
JavaPackage initialize!