|
Class: NameSpace
Object
|
+--NameSpace
|
+--JavaPackage
- Package:
- stx:libbasic
- Category:
- Kernel-Classes
- Version:
- rev:
1.92
date: 2024/04/29 12:55:18
- user: stefan
- file: NameSpace.st directory: libbasic
- module: stx stc-classLibrary: libbasic
A NameSpace is actually a dummy class, providing a home
for its private classes.
Thus, internally, the same mechanism is used for classes in
a NameSpace and private classes.
This has two advantages:
- we only need one mechanism for both namespaces
and private classes
- there are no possible conflicts between a class
and a namespace named alike.
copyrightCOPYRIGHT (c) 1996 by Claus Gittinger
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
Compatibility-VW5.4
-
defineClass: name superclass: superclass indexedType: indexed private: private instanceVariableNames: instVars classInstanceVariableNames: classInstVars imports: imports category: category
-
VW5i compatibility class/namespace creation
-
defineClass: name superclass: superclassOrName indexedType: indexed private: private instanceVariableNames: instVars classInstanceVariableNames: classInstVars imports: imports category: category attributes: annotations
-
VW5i compatibility class/namespace creation
-
defineNameSpace: nameSymbol private: private imports: imports category: category
-
VW5i compatibility class/namespace creation
accessing
-
allClasses
-
-
allClassesWithAllPrivateClasses
-
-
allClassesWithAllPrivateClassesDo: aBlock
-
-
at: classNameSymbol
-
return a class from the namespace defined by the receiver
-
at: classNameSymbol ifAbsent: exceptionBlock
-
return a class or an alternative
from the namespace defined by the receiver
-
at: aKey ifPresent: aBlock
-
try to retrieve the value stored at aKey.
If there is nothing stored under this key, do nothing.
Otherwise, evaluate aBlock, passing the retrieved value as argument.
-
at: classNameSymbol put: aClass
-
add a class to the namespace defined by the receiver
-
classNamed: aString
-
return the class with name aString, or nil if absent.
To get to the metaClass, append ' class' to the string.
-
classNames
-
-
import: aNameSpace
-
-
imports
-
-
includesKey: aClassNameStringOrSymbol
-
return true if such a key is present
-
loadedClassNamed: aString
-
return the class with name aString, or nil if absent.
To get to the metaClass, append ' class' to the string.
Do not autoload the owning class of a private class.
-
package
-
all nameSpaces are outside of any package
Usage example(s):
the nameSpace class itself has a package
|
-
subclasses
-
most of my subs are NameSpaces. Do not return these.
Usage example(s):
enumerating
-
allBehaviorsDo: aBlock
-
enumerate all classes in this namespace
-
allClassesDo: aBlock
-
enumerate all classes in this namespace
-
allClassesForWhich: filter
-
return a collection with all classes in the system,
for which filter evaluates to true.
Usage example(s):
Smalltalk
allClassesForWhich:[:cls | cls name startsWith:'Po']
|
-
allClassesForWhich: filter do: aBlock
-
evaluate the argument, aBlock for all classes in the system, for which filter evaluates to true.
Usage example(s):
Smalltalk
allClassesForWhich:[:cls | cls name startsWith:'Po']
do:[:aClass | Transcript showCR:aClass name]
|
-
allMethodsDo: aBlock
-
enumerate all methods in this namespace's classes
-
allMethodsWithSelectorDo: aBlock
-
enumerate all methods in the Smalltalk namespace's classes
-
keyAtValue: anObject
-
return the symbol under which anObject is stored - or nil
Usage example(s):
Smalltalk keyAtValue:Object
|
-
keys
-
return all class names in this namespace
Usage example(s):
-
keysDo: aBlock
-
enumerate all class names in this namespace
Usage example(s):
Benchmarks keysDo:[:k | Transcript showCR:k]
|
fileOut
-
fileOutDefinitionOn: aStream
-
redefined to generate another definition message
fileOut-xml
-
fileOutXMLDefinitionOn: aStream
-
redefined to generate another definition message
instance creation
-
fullName: aFullNameSpacePathName
-
given a possibly nested name of a namespace, create all required
intermediate spaces (if not already existing) and return the
bottom-level space.
-
fullName: aFullNameSpacePathName createIfAbsent: createIfAbsent
-
given a possibly nested name of a namespace, lookup and return
a namespace instance for it.
If createIfAbsent is true, create all required intermediate spaces (if not already existing)
and return the bottom-level space.
If false, and if any namespace along the path does not exist, reutrn nil.
-
name: aStringOrSymbol
-
create a new nameSpace, named aStringOrSymbol.
Notice, that the nameSpace is created in the current one -
don't get confused; we recommend, not to nest them too much.
Usage example(s):
NameSpace name:'foo'
(NameSpace name:'foo') category:'my name space'
foo at:#bar put:(Metaclass new new)
(NameSpace name:'foo') name:'bar'
|
Usage example(s):
NameSpace name:'an-invalid++name'
NameSpace name:'another:invalidName'
NameSpace name:'another::invalidName'
|
-
new
-
catch new - namespaces are not to be created by the user
misc ui support
-
inspectorClass
( an extension from the stx:libtool package )
-
redefined to launch a DictionaryInspector
(instead of the default Inspector).
printing & storing
-
displayOn: aGCOrStream
-
Compatibility
append a printed description on some stream (Dolphin, Squeak)
OR:
display the receiver in a graphicsContext at 0@0 (ST80).
This method allows for any object to be displayed in some view
(although the fallBack is to display its printString ...)
private
-
setImports: anArrayOrNil
-
Sets namespace imports. Private entry,
Use 'self import: theNamespace' instead
queries
-
allNameSpaces
-
return a list of all namespaces
-
allNameSpacesIn: anEnvironment
-
return a list of all namespaces
-
allNamespaces
-
return a list of all namespaces
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
allNamespacesIn: anEnvironment
-
return a list of all namespaces
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
canHaveExtensions
-
return true, if this class allows extensions from other packages.
Private classes, namespaces and projectDefinitions don't allow this
Usage example(s):
Smalltalk allClasses select:[:each | each canHaveExtensions not]
|
-
hasNameSpaces
-
return true - if I support sub-namespaces
-
hasNamespaces
-
return true - if I support sub-namespaces
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
isBehavior
-
return true, if the receiver is a class.
Unconditionally false here for subclasses - my subclasses are namespaces
-
isClass
-
return true, if the receiver is a class.
Unconditionally false here for subclasses - my subclasses are namespaces
-
isNameSpace
-
return true, if the receiver is a nameSpace.
Unconditionally true here for subclasses - my subclasses are namespaces
-
isRealNameSpace
-
return true, if the receiver is a nameSpace, but not Smalltalk (which is also a class).
Unconditionally true here for subclasses - my subclasses are namespaces
-
isTopLevelNameSpace
-
-
isTopLevelNamespace
-
obsolete - use isTopLevelNameSpace
** This is an obsolete interface - do not use it (it may vanish in future versions) **
|