X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FSymbolSet.js;h=5843a946d5fe56a337a2f3425505b5bdfcbb75f8;hp=22c3b23c4a443818374a812faa513d88bfff246b;hb=HEAD;hpb=36598c7944d78779b5d670b93ae5db8f40729826 diff --git a/JSDOC/SymbolSet.js b/JSDOC/SymbolSet.js index 22c3b23..5843a94 100644 --- a/JSDOC/SymbolSet.js +++ b/JSDOC/SymbolSet.js @@ -2,10 +2,12 @@ XObject = imports.XObject.XObject; -Options = imports.Options.Options; -Parser = imports.Parser.Parser; -Symbol = imports.Symbol.Symbol; DocComment = imports.DocComment.DocComment; +// circular references.. +///Options = imports.BuildDocs.Options; +//Parser = imports.Parser.Parser; +//Symbol = imports.Symbol.Symbol; + SymbolSet = XObject.define( @@ -15,11 +17,15 @@ SymbolSet = XObject.define( Object, { + _index : false, + + init : function() { this._index = {}; }, - keys : function() { + keys : function() + { var found = []; for (var p in this._index) { found.push(p); @@ -29,14 +35,16 @@ SymbolSet = XObject.define( hasSymbol : function(alias) { - return this.keys().indexOf(alias) > -1; + return typeof(this._index[alias]) != 'undefined'; + //return this.keys().indexOf(alias) > -1; }, addSymbol : function(symbol) { - print("ADDING SYMBOL:"+symbol.alias.toString()); + //print("ADDING SYMBOL:"+symbol.alias.toString()); + if (this.hasSymbol(symbol.alias)) { - Options.LOG.warn("Overwriting symbol documentation for: "+symbol.alias + "."); + imports.BuildDocs.Options.LOG.warn("Overwriting symbol documentation for: "+symbol.alias + "."); } this._index[symbol.alias] = symbol; }, @@ -54,6 +62,17 @@ SymbolSet = XObject.define( } return found; }, + /** + * for serializing + */ + toJSON : function() { + return { + '*object' : 'SymbolSet', + _index : this._index + }; + + }, + deleteSymbol : function(alias) { if (!this.hasSymbol(alias)) return; @@ -80,20 +99,23 @@ SymbolSet = XObject.define( resolveBorrows : function() { for (p in this._index) { var symbol = this._index[p]; + + + if (symbol.is("FILE") || symbol.is("GLOBAL")) continue; var borrows = symbol.inherits; for (var i = 0; i < borrows.length; i++) { var borrowed = this.getSymbol(borrows[i].alias); if (!borrowed) { - Options.LOG.warn("Can't borrow undocumented "+borrows[i].alias+"."); + imports.BuildDocs.Options.LOG.warn("Can't borrow undocumented "+borrows[i].alias+"."); continue; } var borrowAsName = borrows[i].as; var borrowAsAlias = borrowAsName; if (!borrowAsName) { - Options.LOG.warn("Malformed @borrow, 'as' is required."); + imports.BuildDocs.Options.LOG.warn("Malformed @borrow, 'as' is required."); continue; } @@ -186,13 +208,13 @@ SymbolSet = XObject.define( var container = this.getSymbol(symbol.memberOf); if (!container) { if (SymbolSet.isBuiltin(symbol.memberOf)) { - container = Parser.addBuiltin(symbol.memberOf); + container = imports.Parser.Parser.addBuiltin(symbol.memberOf); } else { // print("symbol NOT a BUILT IN - createing a container"); // Eg. Ext.y.z (missing y) // we need to add in the missing symbol... - container = new Symbol(symbol.memberOf, [], "OBJECT", new DocComment("")); + container = new imports.Symbol.Symbol(symbol.memberOf, [], "OBJECT", new DocComment("")); container.isNamespace = true; this.addSymbol( container ); // print(container.toSource()); @@ -227,10 +249,10 @@ SymbolSet = XObject.define( if (contributer) { contributer.childClasses.push(symbol.alias); symbol.inheritsFrom.push(contributer.alias); - if (!isUnique(symbol.inheritsFrom)) { - Options.LOG.warn("Can't resolve augments: Circular reference: "+symbol.alias+" inherits from "+contributer.alias+" more than once."); - } - else { + //if (!isUnique(symbol.inheritsFrom)) { + // imports.BuildDocs.Options.LOG.warn("Can't resolve augments: Circular reference: "+symbol.alias+" inherits from "+contributer.alias+" more than once."); + //} + //else { var cmethods = contributer.methods; var cproperties = contributer.properties; var cfgs = contributer.cfgs; @@ -245,11 +267,11 @@ SymbolSet = XObject.define( } - } + //} } else { - Options.LOG.warn("Can't augment contributer: '"+augments[ii]+"', not found. FOR: " + symbol.alias); + imports.BuildDocs.Options.LOG.warn("Can't augment contributer: '"+augments[ii]+"', not found. FOR: " + symbol.alias); //LOG.warn("We only have the following symbols: \n" + // this.keys().toSource().split(",").join(", \n")); @@ -304,6 +326,7 @@ SymbolSet = XObject.define( //while(addAugments(symbol.augments) > 0) { } } + }) SymbolSet.isBuiltin = function(name) {