JSDOC/TokenReader.js
[gnome.introspection-doc-generator] / JSDOC / Symbol.js
index da8ac5e..7385547 100644 (file)
@@ -35,8 +35,8 @@ Symbol = XObject.define(
         //events : false,
         example : "",
         exceptions : [],  // Doctag[]
-        inherits : [],
-        inheritsFrom : [],
+        inherits : [],  // Doctag[]
+        //inheritsFrom : [],
         isa : "OBJECT", // OBJECT//FUNCTION
         isEvent : false,
         isConstant : false,
@@ -46,13 +46,13 @@ Symbol = XObject.define(
         isPrivate : false,
         isStatic : false,
         memberOf : "",
-        methods : [],
+        methods : [], // Symbol[]
         _name : "",
-        _params : [],
-        properties : [],
-        requires : [],
-        returns : [],
-        see : [],
+        _params : [], //Doctag[]
+        properties : [], //Doctag[]
+        requires : [],  //Doctag[]
+        returns : [], //Doctag[]
+        see : [], //Doctag[]
         since : "",
         srcFile : {},
         type : "",
@@ -63,20 +63,11 @@ Symbol = XObject.define(
         
             
         
-        toObject : function()
+        toJSON : function()
         {
             
-            function array2object(a)
-            {
-                
-                var r = [];
-                a.forEach(function(e) {
-                    r.push(e.toObject());
-                });
-                return r;
-            }
-            
-            var ret = { };
+           
+            var ret = { '*object' : 'Symbol' };
             for (var i in this) {
                 if (Symbol.hide.indexOf(i) > -1) {
                     continue;
@@ -90,16 +81,23 @@ Symbol = XObject.define(
                             case 'params' : 
                             case 'augments' :                             
                             case 'exceptions' :  
-                                ret[i] = array2object(this[i],true); 
-                                continue;
-                                
-                            //objects..
-                            
+                            case 'inherits' :
+                            case 'methods' :
+                            case '_params': 
+                            case 'properties': 
+                            case 'requires':
+                            case 'returns':
+                            case 'see':
+                            case 'cfgs': // key val of doctags..
                             case 'comment' :
-                                print(JSON.stringify(this[i]));
-                                ret[i] = this[i].toObject();
+                                ret[i] = this[i]
+                                continue; 
+                            
+                            //skip
+                            case 'inheritsFrom':
+                            case 'childClasses':
                                 continue;
-                                
+            
                             default:
                                 print("object? :" + i);
                                 Seed.quit();
@@ -108,9 +106,12 @@ Symbol = XObject.define(
                         
                     case 'string':
                     case 'number':
+                    case 'boolean':
                         ret[i] = this[i]; continue;
                     default:
+                        
                         print("unknown type:" + typeof(this[i]));
+                        print(JSON.stringify(this));
                         Seed.quit();
                    }
             }
@@ -127,7 +128,7 @@ Symbol = XObject.define(
             //this.events = [];
             this.exceptions = [];
             this.inherits = [];
-            this.inheritsFrom = [];
+            //
             this.isa = "OBJECT"; // OBJECT//FUNCTION
             this.methods = [];
             this._params = [];
@@ -136,8 +137,12 @@ Symbol = XObject.define(
             this.returns = [];
             this.see = [];
             this.srcFile = {};
-            this.childClasses = [];
+            
+            
             this.cfgs = {};
+            // derived later?
+            this.inheritsFrom = [];
+            this.childClasses = [];
             
             this.comment = new DocComment();
             this.comment.isUserComment =  false;
@@ -353,6 +358,7 @@ Symbol = XObject.define(
             // @class
             var classes = this.comment.getTag("class");
             if (classes.length) {
+                //print(JSON.stringify(this,null,4));
                 this.isa = "CONSTRUCTOR";
                 this.classDesc = classes[0].desc; // desc can't apply to the constructor as there is none.
                 if (!this.classDesc) {
@@ -448,6 +454,7 @@ Symbol = XObject.define(
                 // @static
             if (this.comment.getTag("singleton").length) {
                 this.isStatic = true;
+                //print('------------- got singleton ---------------' + this.isa);
                 //if (this.isa == "CONSTRUCTOR") {
                 //     this.isNamespace = true;
                 //}
@@ -660,6 +667,11 @@ Symbol = XObject.define(
             if (memberOfs.length) {
                 this.memberOf = memberOfs[0].desc;
                 this.memberOf = this.memberOf.replace(/\.prototype\.?/g, "#");
+                this.name = this.name.split('.').pop();
+                this.name = this.name.split('#').pop();
+                this.name = this.memberOf + this.name;
+                this._name = this.name
+                this.alias = this.name;
             }
 
             /*~t
@@ -817,4 +829,4 @@ Symbol.fromDump = function(t)
         ns[i] = t[i];
     }
     return ns;
-}
\ No newline at end of file
+}