X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Introspect%2FClass.js;h=9a6ee94b6c97de4ab0915b30c63407245c53fd45;hb=99c3b79f2b213e7df40920437a07ec391fd17c78;hp=dba5f90f645171486316afb389e3554ee1fd704c;hpb=7da9b103ee026e6b16a1aae9fb819a3f52ce3df4;p=gnome.introspection-doc-generator diff --git a/Introspect/Class.js b/Introspect/Class.js index dba5f90..9a6ee94 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() );