|
Class: NameSpace
Object
|
+--NameSpace
|
+--Authentication
|
+--CharacterEncoderImplementations
|
+--Comanche
|
+--Demos
|
+--Dolphin
|
+--FCGI
|
+--HTML
|
+--JavaPackage
|
+--ReadMe
|
+--Squeak
|
+--SunRPC
|
+--Tools
|
+--V
|
+--VAST
|
+--XML
- Package:
- stx:libbasic
- Category:
- Kernel-Classes
- Version:
- rev:
1.83
date: 2019/06/05 15:09:01
- user: cg
- file: NameSpace.st directory: libbasic
- module: stx stc-classLibrary: libbasic
- Author:
- Claus Gittinger
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.
Behavior
ClassDescription
Class
Metaclass
PrivateMetaclass
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
-
-
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
|
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
-
enumerate 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) **
-
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) **
|