X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Introspect%2FClass.js;h=90348ec83673e09c834c4bf015d45d4e2a72f436;hb=abefbaaeed0b71e156b5383dc5cb43a7bb2b63b9;hp=dba5f90f645171486316afb389e3554ee1fd704c;hpb=7da9b103ee026e6b16a1aae9fb819a3f52ce3df4;p=gnome.introspection-doc-generator diff --git a/Introspect/Class.js b/Introspect/Class.js index dba5f90..90348ec 100644 --- a/Introspect/Class.js +++ b/Introspect/Class.js @@ -25,6 +25,7 @@ Base = imports.Base.Base; Class = XObject.define( function(ns, name) { Base.call(this, ns, name); + print("Class ctr - parent called"); this.loadExtends(); this.loadImplements(); //console.log("CREATED(Class) " + this.alias); @@ -39,13 +40,13 @@ Class = XObject.define( var pi = GI.object_info_get_parent(bi); this.extendsClasses = []; - if (!pi) { + if (!pi || (pi.get_namespace() == this.ns && pi.get_name() == this.name )) { return; - } + } this.parent = NameSpace.factory( 'Class', - GI.base_info_get_namespace(pi), - GI.base_info_get_name(pi) + pi.get_namespace(), + pi.get_name() ); this.extendsClasses = [ this.parent ]; @@ -55,9 +56,21 @@ Class = XObject.define( this.extendsClasses.push(p); },this); + if (this.parent) { + this.parent.addChildClass(this.alias); + } }, + + addChildClass : function (n) { + this.childClasses.push(n); + if (this.parent) { + this.parent.addChildClass(n); + } + }, + + loadImplements : function() { var bb = this.getBI(); @@ -71,7 +84,7 @@ Class = XObject.define( var iface = NameSpace.factory( 'Interface', - GI.base_info_get_namespace(prop) , GI.base_info_get_name(prop) + prop.get_namespace() , prop.get_name() );