NameSpace.st
branchjv
changeset 17786 e7f6aea89c56
parent 17780 b6e42c92eba0
child 17787 c56ba6d58661
--- a/NameSpace.st	Tue Jul 20 16:37:27 2010 +0100
+++ b/NameSpace.st	Wed Jul 21 16:52:22 2010 +0100
@@ -18,6 +18,13 @@
 	category:'Kernel-Classes'
 !
 
+NameSpace class instanceVariableNames:'imports'
+
+"
+ No other class instance variables are inherited by this class.
+"
+!
+
 !NameSpace class methodsFor:'documentation'!
 
 copyright
@@ -369,10 +376,23 @@
     ^ self allClasses collect:[:each | each nameWithoutPrefix]
 !
 
+import: aNameSpace
+
+    (aNameSpace isNameSpace or: [aNameSpace isProgrammingLanguage])
+        ifFalse:[self error: 'Not a namespace or prog. language'].
+
+    (self imports includes: aNameSpace) ifFalse:
+        [imports := self imports copyWith: aNameSpace]
+
+    "Created: / 21-07-2010 / 15:16:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-07-2010 / 17:18:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 imports
-    ^ #()
+    ^ imports ? #()
 
     "Created: / 19-05-2010 / 16:06:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-07-2010 / 17:17:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 includesKey:aClassNameStringOrSymbol
@@ -577,6 +597,18 @@
     "Modified: 20.12.1996 / 15:11:31 / cg"
 ! !
 
+!NameSpace class methodsFor:'private'!
+
+setImports: anArrayOrNil
+
+    "Sets namespace imports. Private entry, 
+     Use 'self import: theNamespace' instead"
+
+    imports := anArrayOrNil
+
+    "Created: / 21-07-2010 / 15:29:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !NameSpace class methodsFor:'queries'!
 
 allNameSpaces
@@ -678,7 +710,7 @@
 !NameSpace class methodsFor:'documentation'!
 
 version
-    ^ '$Id: NameSpace.st 10544 2010-07-12 16:20:36Z vranyj1 $'
+    ^ '$Id: NameSpace.st 10551 2010-07-21 15:52:22Z vranyj1 $'
 !
 
 version_CVS
@@ -686,8 +718,5 @@
 !
 
 version_SVN
-    ^ '$Id: NameSpace.st 10544 2010-07-12 16:20:36Z vranyj1 $'
+    ^ '$Id: NameSpace.st 10551 2010-07-21 15:52:22Z vranyj1 $'
 ! !
-
-
-