CustomNamespace.st
changeset 721 f76a4c53af1e
parent 720 33032cf72a9c
child 752 516a6334136c
--- a/CustomNamespace.st	Sun Nov 02 22:01:00 2014 +0100
+++ b/CustomNamespace.st	Tue Nov 04 01:29:31 2014 +0100
@@ -63,6 +63,38 @@
     "Modified (comment): / 09-10-2014 / 11:16:02 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
+putModelClass: aModelClass 
+    "Stores model class (e.g. RBClass) in this model so we can work further with 
+    the given class and the modifications done to the given class 
+    are reflected in this model (represented by CustomNamespace/RBNamespace)."
+    | classIndex name isClassUndefined |
+
+    classIndex := 1.
+    name := aModelClass name.
+    aModelClass isMeta ifTrue: [ 
+        classIndex := 2.
+        name := aModelClass theNonMetaclass name.
+    ].
+
+    isClassUndefined := true.
+    newClasses at: name ifPresent: [ :classes |
+        isClassUndefined := false.
+        classes at: classIndex put: aModelClass  
+    ].
+
+    changedClasses at: name ifPresent: [ :classes |
+        isClassUndefined := false.
+        classes at: classIndex put: aModelClass  
+    ].
+
+    isClassUndefined ifTrue: [
+        self error: 'Class has to be defined in the model - see defineClass: .'.
+    ]
+
+    "Created: / 04-11-2014 / 00:03:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 04-11-2014 / 01:07:58 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
 sourceCodeGenerator
     "Returns initialized source code generator"
     | sourceCodeGenerator |