You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ry...@apache.org on 2008/11/17 23:42:49 UTC

svn commit: r718422 [7/9] - in /lucene/solr/trunk: ./ contrib/javascript/ contrib/javascript/example/ contrib/javascript/example/reuters/ contrib/javascript/example/reuters/images/ contrib/javascript/example/testsolr/ contrib/javascript/example/testsol...

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,304 @@
+load("app/frame/Dumper.js");
+function symbolize(opt) {
+	symbols = null;
+	jsdoc = new JSDOC.JsDoc(opt);
+	symbols = jsdoc.symbolSet;
+}
+
+
+var testCases = [
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/overview.js"]});
+		//print(Dumper.dump(symbols));	
+		is('symbols.getSymbolByName("My Cool Library").name', 'My Cool Library', 'File overview can be found by alias.');		
+	}
+	,
+	function() {
+		symbolize({_: [SYS.pwd+"test/name.js"]});
+
+		is('symbols.getSymbol("Response").name', "Response", 'Virtual class name is found.');
+		is('symbols.getSymbol("Response#text").alias', "Response#text", 'Virtual method name is found.');
+		is('symbols.getSymbol("Response#text").memberOf', "Response", 'Virtual method parent name is found.');
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/prototype.js"]});
+
+		is('symbols.getSymbol("Article").name', "Article", 'Function set to constructor prototype with inner constructor name is found.');
+		is('symbols.getSymbol("Article").hasMethod("init")', true, 'The initializer method name of prototype function is correct.');
+		is('symbols.getSymbol("Article").hasMember("counter")', true, 'A static property set in the prototype definition is found.');
+		is('symbols.getSymbol("Article").hasMember("title")', true, 'An instance property set in the prototype is found.');
+		is('symbols.getSymbol("Article#title").isStatic', false, 'An instance property has isStatic set to false.');
+		is('symbols.getSymbol("Article.counter").name', "counter", 'A static property set in the initializer has the name set correctly.');
+		is('symbols.getSymbol("Article.counter").memberOf', "Article", 'A static property set in the initializer has the memberOf set correctly.');
+		is('symbols.getSymbol("Article.counter").isStatic', true, 'A static property set in the initializer has isStatic set to true.');
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/prototype_oblit.js"]});
+		
+		is('symbols.getSymbol("Article").name', "Article", 'Oblit set to constructor prototype name is found.');
+		is('typeof symbols.getSymbol("Article.prototype")', "undefined", 'The prototype oblit is not a symbol.');
+		is('symbols.getSymbol("Article#getTitle").name', "getTitle", 'The nonstatic method name of prototype oblit is correct.');
+		is('symbols.getSymbol("Article#getTitle").alias', "Article#getTitle", 'The alias of non-static method of prototype oblit is correct.');
+		is('symbols.getSymbol("Article#getTitle").isStatic', false, 'The isStatic of a nonstatic method of prototype oblit is correct.');
+		is('symbols.getSymbol("Article.getTitle").name', "getTitle", 'The static method name of prototype oblit is correct.');
+		is('symbols.getSymbol("Article.getTitle").isStatic', true, 'The isStatic of a static method of prototype oblit is correct.');
+		is('symbols.getSymbol("Article#getTitle").isa', "FUNCTION", 'The isa of non-static method of prototype oblit is correct.');
+		is('symbols.getSymbol("Article.getTitle").alias', "Article.getTitle", 'The alias of a static method of prototype oblit is correct.');
+		is('symbols.getSymbol("Article.getTitle").isa', "FUNCTION", 'The isa of static method of prototype oblit is correct.');
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/prototype_oblit_constructor.js"]});
+		
+		is('symbols.getSymbol("Article").name', "Article", 'Oblit set to constructor prototype with inner constructor name is found.');
+		is('symbols.getSymbol("Article#init").name', "init", 'The initializer method name of prototype oblit is correct.');
+		is('symbols.getSymbol("Article").hasMember("pages")', true, 'Property set by initializer method "this" is on the outer constructor.');
+		is('symbols.getSymbol("Article#Title").name', "Title", 'Name of the inner constructor name is found.');
+		is('symbols.getSymbol("Article#Title").memberOf', "Article", 'The memberOf of the inner constructor name is found.');
+		is('symbols.getSymbol("Article#Title").isa', "CONSTRUCTOR", 'The isa of the inner constructor name is constructor.');
+		is('symbols.getSymbol("Article#Title").hasMember("title")', true, 'A property set on the inner constructor "this"  is on the inner constructor.');
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/inner.js"]});
+		
+		is('symbols.getSymbol("Outer").name', "Outer", 'Outer constructor prototype name is found.');
+		is('symbols.getSymbol("Outer").methods.length', 1, 'Inner function doesnt appear as a method of the outer.');
+		is('symbols.getSymbol("Outer").hasMethod("open")', true, 'Outer constructors methods arent affected by inner function.');
+		is('symbols.getSymbol("Outer-Inner").alias', "Outer-Inner", 'Alias of inner function is found.');
+		is('symbols.getSymbol("Outer-Inner").isa', "CONSTRUCTOR", 'isa of inner function constructor is found.');
+		is('symbols.getSymbol("Outer-Inner").memberOf', "Outer", 'The memberOf of inner function is found.');
+		is('symbols.getSymbol("Outer-Inner").name', "Inner", 'The name of inner function is found.');
+		is('symbols.getSymbol("Outer-Inner#name").name', "name", 'A member of the inner function constructor, attached to "this" is found on inner.');
+		is('symbols.getSymbol("Outer-Inner#name").memberOf', "Outer-Inner", 'The memberOf of an inner function member is found.');		
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/prototype_nested.js"]});
+		
+		is('symbols.getSymbol("Word").name', "Word", 'Base constructor name is found.');
+		is('symbols.getSymbol("Word").hasMethod("reverse")', true, 'Base constructor method is found.');
+		is('symbols.getSymbol("Word").methods.length', 1, 'Base constructor has only one method.');
+		is('symbols.getSymbol("Word").memberOf', "", 'Base constructor memberOf is empty.');
+		is('symbols.getSymbol("Word#reverse").name', "reverse", 'Member of constructor prototype name is found.');
+		is('symbols.getSymbol("Word#reverse").memberOf', "Word", 'Member of constructor prototype memberOf is found.');
+		is('symbols.getSymbol("Word#reverse.utf8").name', "utf8", 'Member of constructor prototype method name is found.');
+		is('symbols.getSymbol("Word#reverse.utf8").memberOf', "Word#reverse", 'Static nested member memberOf is found.');
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/namespace_nested.js"]});
+		
+		is('symbols.getSymbol("ns1").name', "ns1", 'Base namespace name is found.');
+		is('symbols.getSymbol("ns1").memberOf', "", 'Base namespace memberOf is empty (its a constructor).');
+		is('symbols.getSymbol("ns1.ns2").name', "ns2", 'Nested namespace name is found.');
+ 		is('symbols.getSymbol("ns1.ns2").alias', "ns1.ns2", 'Nested namespace alias is found.');
+ 		is('symbols.getSymbol("ns1.ns2").memberOf', "ns1", 'Nested namespace memberOf is found.');
+ 		is('symbols.getSymbol("ns1.ns2.Function1").name', "Function1", 'Method of nested namespace name is found.');
+ 		is('symbols.getSymbol("ns1.ns2.Function1").memberOf', "ns1.ns2", 'Constructor of nested namespace memberOf is found.');			
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/functions_nested.js"]});
+		
+		is('symbols.getSymbol("Zop").name', "Zop", 'Any constructor name is found.');
+		is('symbols.getSymbol("Zop").isa', "CONSTRUCTOR", 'It isa constructor.');
+		is('symbols.getSymbol("Zop").hasMethod("zap")', true, 'Its method name, set later, is in methods array.');
+		is('symbols.getSymbol("Foo").name', "Foo", 'The containing constructor name is found.');
+		is('symbols.getSymbol("Foo").hasMethod("methodOne")', true, 'Its method name is found.');
+		is('symbols.getSymbol("Foo").hasMethod("methodTwo")', true, 'Its second method name is found.');
+		is('symbols.getSymbol("Foo#methodOne").alias', "Foo#methodOne", 'A methods alias is found.');
+		is('symbols.getSymbol("Foo#methodOne").isStatic', false, 'A methods is not static.');
+		is('symbols.getSymbol("Bar").name', "Bar", 'A global function declared inside another function is found.');
+		is('symbols.getSymbol("Bar").isa', "FUNCTION", 'It isa function.');
+		is('symbols.getSymbol("Bar").memberOf', "_global_", 'It is global.');
+		is('symbols.getSymbol("Foo-inner").name', "inner", 'An inner functions name is found.');
+		is('symbols.getSymbol("Foo-inner").memberOf', "Foo", 'It is member of the outer function.');
+		is('symbols.getSymbol("Foo-inner").isInner', true, 'It is an inner function.');
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/memberof_constructor.js"]});
+		
+		is('symbols.getSymbol("Circle#Tangent").name', "Tangent", 'Constructor set on prototype using @member has correct name.');
+ 		is('symbols.getSymbol("Circle#Tangent").memberOf', "Circle", 'Constructor set on prototype using @member has correct memberOf.');
+ 		is('symbols.getSymbol("Circle#Tangent").alias', "Circle#Tangent", 'Constructor set on prototype using @member has correct alias.');
+ 		is('symbols.getSymbol("Circle#Tangent").isa', "CONSTRUCTOR", 'Constructor set on prototype using @member has correct isa.');
+		is('symbols.getSymbol("Circle#Tangent").isStatic', false, 'Constructor set on prototype using @member is not static.');
+		is('symbols.getSymbol("Circle#Tangent#getDiameter").name', "getDiameter", 'Method set on prototype using @member has correct name.');
+		is('symbols.getSymbol("Circle#Tangent#getDiameter").memberOf', "Circle#Tangent", 'Method set on prototype using @member has correct memberOf.');
+		is('symbols.getSymbol("Circle#Tangent#getDiameter").alias', "Circle#Tangent#getDiameter", 'Method set on prototype using @member has correct alias.');
+		is('symbols.getSymbol("Circle#Tangent#getDiameter").isa', "FUNCTION", 'Method set on prototype using @member has correct isa.');
+		is('symbols.getSymbol("Circle#Tangent#getDiameter").isStatic', false, 'Method set on prototype using @member is not static.');
+	}
+	,
+	function() {
+		symbolize({a:true, p: true,  _: [SYS.pwd+"test/memberof.js"]});
+		
+		is('symbols.getSymbol("pack.install").alias', "pack.install", 'Using @memberOf sets alias, when parent name is in memberOf tag.');
+		is('symbols.getSymbol("pack.install.overwrite").name', "install.overwrite", 'Using @memberOf sets name, even if the name is dotted.');
+		is('symbols.getSymbol("pack.install.overwrite").memberOf', "pack", 'Using @memberOf sets memberOf.');
+ 		is('symbols.getSymbol("pack.install.overwrite").isStatic', true, 'Using @memberOf with value not ending in octothorp sets isStatic to true.');
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/borrows.js"]});
+
+		is('symbols.getSymbol("Layout").name', "Layout", 'Constructor can be found.');
+		is('symbols.getSymbol("Layout").hasMethod("init")', true, 'Constructor method name can be found.');
+		is('symbols.getSymbol("Layout").hasMember("orientation")', true, 'Constructor property name can be found.');
+		
+		is('symbols.getSymbol("Page").hasMethod("reset")', true, 'Second constructor method name can be found.');
+		is('symbols.getSymbol("Page").hasMember("orientation")', true, 'Second constructor borrowed property name can be found in properties.');
+		is('symbols.getSymbol("Page#orientation").memberOf', "Page", 'Second constructor borrowed property memberOf can be found.');
+		is('symbols.getSymbol("Page").hasMethod("myGetInnerElements")', true, 'Can borrow an inner function, add it as a static function.');
+
+		is('symbols.getSymbol("ThreeColumnPage#init").alias', "ThreeColumnPage#init", 'Third constructor method can be found even though method with same name is borrowed.');
+		is('symbols.getSymbol("ThreeColumnPage#reset").alias', "ThreeColumnPage#reset", 'Borrowed method can be found.');
+		is('symbols.getSymbol("ThreeColumnPage#orientation").alias', "ThreeColumnPage#orientation", 'Twice borrowed method can be found.');
+	
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/borrows2.js"]});
+
+		is('symbols.getSymbol("Foo").hasMethod("my_zop")', true, 'Borrowed method can be found.');		
+		is('symbols.getSymbol("Bar").hasMethod("my_zip")', true, 'Second borrowed method can be found.');
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/constructs.js"]});
+
+		is('symbols.getSymbol("Person").hasMethod("say")', true, 'The constructs tag creates a class that lends can add a method to.');		
+	}
+	,
+	function() {
+		symbolize({a: true, _: [SYS.pwd+"test/augments.js", SYS.pwd+"test/augments2.js"]});
+		
+		is('symbols.getSymbol("Page").augments[0]', "Layout", 'An augmented class can be found.');
+		is('symbols.getSymbol("Page#reset").alias', "Page#reset", 'Method of augmenter can be found.');
+		is('symbols.getSymbol("Page").hasMethod("Layout#init")', true, 'Method from augmented can be found.');
+		is('symbols.getSymbol("Page").hasMember("Layout#orientation")', true, 'Property from augmented can be found.');
+		is('symbols.getSymbol("Page").methods.length', 3, 'Methods of augmented class are included in methods array.');
+	
+		is('symbols.getSymbol("ThreeColumnPage").augments[0]', "Page", 'The extends tag is a synonym for augments.');
+		is('symbols.getSymbol("ThreeColumnPage").hasMethod("ThreeColumnPage#init")', true, 'Local method overrides augmented method of same name.');
+		is('symbols.getSymbol("ThreeColumnPage").methods.length', 3, 'Local method count is right.');
+		
+		is('symbols.getSymbol("NewsletterPage").augments[0]', "ThreeColumnPage", 'Can augment across file boundaries.');
+		is('symbols.getSymbol("NewsletterPage").augments.length', 2, 'Multiple augments are supported.');
+		is('symbols.getSymbol("NewsletterPage").inherits[0].alias', "Junkmail#annoy", 'Inherited method with augments.');
+		is('symbols.getSymbol("NewsletterPage").methods.length', 6, 'Methods of augmented class are included in methods array across files.');
+		is('symbols.getSymbol("NewsletterPage").properties.length', 1, 'Properties of augmented class are included in properties array across files.');
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/static_this.js"]});
+		
+		is('symbols.getSymbol("box.holder").name', "holder", 'Static namespace name can be found.');
+		is('symbols.getSymbol("box.holder.foo").name', "foo", 'Static namespace method name can be found.');
+		is('symbols.getSymbol("box.holder").isStatic', true, 'Static namespace method is static.');
+		
+		is('symbols.getSymbol("box.holder.counter").name', "counter", 'Instance namespace property name set on "this" can be found.');
+		is('symbols.getSymbol("box.holder.counter").alias', "box.holder.counter", 'Instance namespace property alias set on "this" can be found.');
+		is('symbols.getSymbol("box.holder.counter").memberOf', "box.holder", 'Static namespace property memberOf set on "this" can be found.');
+	}
+	,
+	function() {
+		symbolize({a:true, p: true, _: [SYS.pwd+"test/lend.js"]});
+
+		is('symbols.getSymbol("Person").name', "Person", 'Class defined in lend comment is found.');
+		is('symbols.getSymbol("Person").hasMethod("initialize")', true, 'Lent instance method name can be found.');
+		is('symbols.getSymbol("Person").hasMethod("say")', true, 'Second instance method can be found.');
+		is('symbols.getSymbol("Person#sing").isStatic', false, 'Instance method is known to be not static.');
+		
+		is('symbols.getSymbol("Person.getCount").name', "getCount", 'Static method name from second lend comment can be found.');
+		is('symbols.getSymbol("Person.getCount").isStatic', true, 'Static method from second lend comment is known to be static.');
+	
+		is('LOG.warnings.filter(function($){if($.indexOf("notok") > -1) return $}).length', 1, 'A warning is emitted when lending to an undocumented parent.');
+	}
+	,
+	function() {
+		symbolize({a:true, _: [SYS.pwd+"test/param_inline.js"]});
+	
+		is('symbols.getSymbol("Layout").params[0].type', "int", 'Inline param name is set.');
+		is('symbols.getSymbol("Layout").params[0].desc', "The number of columns.", 'Inline param desc is set from comment.');
+		is('symbols.getSymbol("Layout#getElement").params[0].name', "id", 'User defined param documentation takes precedence over parser defined.');
+		is('symbols.getSymbol("Layout#getElement").params[0].isOptional', true, 'Default for param is to not be optional.');
+		is('symbols.getSymbol("Layout#getElement").params[1].isOptional', false, 'Can mark a param as being optional.');
+		is('symbols.getSymbol("Layout#getElement").params[1].type', "number|string", 'Type of inline param doc can have multiple values.');
+		is('symbols.getSymbol("Layout#Canvas").params[0].type', "", 'Type can be not defined for some params.');
+		is('symbols.getSymbol("Layout#Canvas").params[2].type', "int", 'Type can be defined inline for only some params.');
+		is('symbols.getSymbol("Layout#rotate").params.length', 0, 'Docomments inside function sig is ignored without a param.');
+		is('symbols.getSymbol("Layout#init").params[2].type', "zoppler", 'Doc comment type overrides inline type for param with same name.');
+	}
+	,
+	function() {
+		symbolize({a: true, _: [SYS.pwd+"test/shared.js", SYS.pwd+"test/shared2.js"]});
+
+		is('symbols.getSymbol("Array#some").name', 'some', 'The name of a symbol in a shared section is found.');
+		is('symbols.getSymbol("Array#some").alias', 'Array#some', 'The alias of a symbol in a shared section is found.');
+		is('symbols.getSymbol("Array#some").desc', "Extension to builtin array.", 'A description can be shared.');
+		is('symbols.getSymbol("Array#filter").desc', "Extension to builtin array.\nChange every element of an array.", 'A shared description is appended.');
+		is('symbols.getSymbol("Queue").desc', "A first in, first out data structure.", 'A description is not shared when outside a shared section.');
+		is('symbols.getSymbol("Queue.rewind").alias', "Queue.rewind", 'Second shared tag can be started.');
+		is('symbols.getSymbol("startOver").alias', "startOver", 'Shared tag doesnt cross over files.');
+	}
+	,
+	function() {
+		symbolize({a: true, _: [SYS.pwd+"test/config.js"]});
+		is('symbols.getSymbol("Contact").params[0].name', 'person', 'The name of a param is found.');
+		is('symbols.getSymbol("Contact").params[1].name', 'person.name', 'The name of a param set with a dot name is found.');
+		is('symbols.getSymbol("Contact").params[2].name', 'person.age', 'The name of a param set with a dot name is found.');
+		is('symbols.getSymbol("Contact").params[4].name', 'connection', 'The name of a param after config is found.');
+		
+		is('symbols.getSymbol("Family").params[0].name', 'persons', 'Another name of a param is found.');
+		is('symbols.getSymbol("Family").params[1].name', 'persons.Father', 'The name of a param+config is found.');
+		is('symbols.getSymbol("Family").params[2].name', 'persons.Mother', 'The name of a second param+config is found.');
+		is('symbols.getSymbol("Family").params[3].name', 'persons.Children', 'The name of a third param+config is found.');
+			
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/ignore.js"]});
+		is('LOG.warnings.filter(function($){if($.indexOf("undocumented symbol Ignored") > -1) return $}).length', 1, 'A warning is emitted when documenting members of an ignored parent.');
+
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/functions_anon.js"]});
+		is('symbols.getSymbol("a.b").alias', 'a.b', 'In anonymous constructor this is found to be the container object.');
+		is('symbols.getSymbol("a.f").alias', 'a.f', 'In anonymous constructor this can have a method.');
+		is('symbols.getSymbol("a.c").alias', 'a.c', 'In anonymous constructor method this is found to be the container object.');
+		is('symbols.getSymbol("g").alias', 'g', 'In anonymous function executed inline this is the global.');
+		is('symbols.getSymbol("bar2.p").alias', 'bar2.p', 'In named constructor executed inline this is the container object.');
+		is('symbols.getSymbol("module.pub").alias', 'module.pub', 'In parenthesized anonymous function executed inline function scoped variables arent documented.');
+
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/oblit_anon.js"]});
+		is('symbols.getSymbol("opt").name', 'opt', 'Anonymous object properties are assigned to $anonymous.');
+		is('symbols.getSymbol("opt.conf.keep").alias', 'opt.conf.keep', 'Anonymous object properties are assigned to $anonymous.');
+		is('symbols.getSymbol("opt.conf.base").alias', 'opt.conf.base', 'Anonymous object properties are assigned to $anonymous.');
+		
+	}
+	,
+	function() {
+		symbolize({a:true, p:true, _: [SYS.pwd+"test/params_optional.js"]});
+		is('symbols.getSymbol("Document").params.length', 3, 'Correct number of params are found when optional param syntax is used.');
+		is('symbols.getSymbol("Document").params[1].name', "id", 'Name of optional param is found.');
+		is('symbols.getSymbol("Document").params[1].isOptional', true, 'Optional param is marked isOptional.');
+		is('symbols.getSymbol("Document").params[2].name', "title", 'Name of optional param with default value is found.');
+		is('symbols.getSymbol("Document").params[2].isOptional', true, 'Optional param with default value is marked isOptional.');
+		is('symbols.getSymbol("Document").params[2].defaultValue', " This is untitled.", 'Optional param default value is found.');
+
+
+	}
+];
+
+
+//// run and print results
+print(testrun(testCases));

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/addon.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/addon.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/addon.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/addon.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,24 @@
+String.prototype.reverse = function() {
+}
+
+String.prototype.reverse.utf8 = function() {
+}
+
+Function.count = function() {
+}
+
+/** @memberOf Function */
+Function.count.reset = function() {
+}
+
+/** @memberOf Function */
+count.getValue = function() {
+}
+
+/** @memberOf Function.prototype */
+getSig = function() {
+}
+
+/** @memberOf Function.prototype */
+Function.prototype.getProps = function() {
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/anon_inner.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/anon_inner.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/anon_inner.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/anon_inner.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,14 @@
+/**
+ * @name bar
+ * @namespace
+ */
+ 
+new function() {
+    /**
+     * @name bar-foo
+     * @function
+     * @param {number} x
+     */
+    function foo(x) {
+    }
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,31 @@
+/**
+@constructor
+*/
+function Layout(p) {
+	this.init = function(p) {
+	}
+	
+	this.getId = function() {
+	}
+	
+	/** @type Page */
+	this.orientation = "landscape";
+}
+
+/**
+@constructor
+@augments Layout
+*/
+function Page() {
+	this.reset = function(b) {
+	}
+}
+
+/**
+@extends Page
+@constructor
+*/
+function ThreeColumnPage() {
+	this.init = function(resetCode) {
+	}
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments2.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments2.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments2.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/augments2.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,26 @@
+/**
+@constructor
+*/
+function LibraryItem() {
+	this.reserve = function() {
+	}
+}
+
+/**
+@constructor
+*/
+function Junkmail() {
+	this.annoy = function() {
+	}
+}
+
+/**
+@inherits Junkmail.prototype.annoy as pester
+@augments ThreeColumnPage
+@augments LibraryItem
+@constructor
+*/
+function NewsletterPage() {
+	this.getHeadline = function() {
+	}
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,41 @@
+/**
+@constructor
+*/
+function Layout(p) {
+	/** initilize 1 */
+	this.init = function(p) {
+	}
+	
+	/** get the id */
+	this.getId = function() {
+	}
+	
+	/** @type string */
+	this.orientation = "landscape";
+	
+	function getInnerElements(elementSecretId){
+	}
+}
+
+/**
+@constructor
+@borrows Layout#orientation as #orientation
+@borrows Layout-getInnerElements as myGetInnerElements
+*/
+function Page() {
+	/** reset the page */
+	this.reset = function(b) {
+	}
+}
+
+/**
+@constructor
+@borrows Layout.prototype.orientation as this.orientation
+@borrows Layout.prototype.init as #init
+@inherits Page.prototype.reset as #reset
+*/
+function ThreeColumnPage() {
+	/** initilize 2 */
+	this.init = function(p) {
+	}
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows2.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows2.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows2.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/borrows2.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,23 @@
+// testing circular borrows
+
+/**
+	@class
+	@borrows Bar#zop as this.my_zop
+*/
+function Foo() {
+	/** this is a zip. */
+	this.zip = function() {}
+	
+	this.my_zop = new Bar().zop;
+}
+
+/**
+	@class
+	@borrows Foo#zip as this.my_zip
+*/
+function Bar() {
+	/** this is a zop. */
+	this.zop = function() {}
+	
+	this.my_zip = new Foo().zip;
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/config.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/config.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/config.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/config.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,22 @@
+/**
+ * @constructor
+ * @param person The person.
+ * @param {string} person.name The person's name.
+ * @config {integer} age The person's age.
+ * @config [id=1] Optional id number to use.
+ * @param connection
+ */
+function Contact(person, connection) {
+
+}
+
+/**
+ * @constructor
+ * @param persons
+ * @config {string} Father The paternal person.
+ * @config {string} Mother The maternal person.
+ * @config {string[]} Children And the rest.
+ */
+function Family(/**Object*/persons) {
+
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/constructs.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/constructs.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/constructs.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/constructs.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,18 @@
+var Person = makeClass(
+    /**
+      @scope Person
+    */
+    {
+        /**
+        	This is just another way to define a constructor.
+        	@constructs
+        	@param {string} name The name of the person.
+         */
+        initialize: function(name) {
+            this.name = name;
+        },
+        say: function(message) {
+            return this.name + " says: " + message;
+        }
+    }
+);
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,10 @@
+
+/**
+ * @Constructor
+ * @desc 配置文件
+ * @class 什么也不返回
+ */
+function Test(conf) {
+    // do something;
+}
+

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding_other.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding_other.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding_other.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/encoding_other.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,12 @@
+
+/**
+ * @Constructor
+ * @desc ðïîÛ
+ * @class ßàáâãäåæçèçìëêíîï °±²³´µ¡¶·¸¹
+ */
+function Test(conf) {
+    // do something;
+}
+
+// run with commanline option -e=iso-8859-5
+

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_anon.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_anon.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_anon.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_anon.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,39 @@
+/** an anonymous constructor executed inline */
+a = new function() {
+	/** a.b*/
+    this.b = 1;
+    /** a.f */
+    this.f = function() {
+    	/** a.c */
+    	this.c = 2;
+    }
+}
+
+
+/**
+	named function executed inline
+*/
+bar1 = function Zoola1() {
+	/** property of global */
+	this.g = 1;
+}();
+
+/**
+	named constructor executed inline
+*/
+bar2 = new function Zoola2() {
+	/** property of bar */
+	this.p = 1;
+};
+
+/** module pattern */
+module = (function () {
+	/** won't appear in documentation */
+	var priv = 1;
+	
+	/** @scope module */
+	return {
+		/** will appear as a property of module */
+		pub: 1
+	}
+})();

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_nested.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_nested.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_nested.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/functions_nested.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,33 @@
+/** @constructor */
+function Zop() {
+}
+
+/**
+ @class
+*/
+Foo = function(id) {
+	// this is a bit twisted, but if you call Foo() you will then
+	// modify Foo(). This is kinda, sorta non-insane, because you
+	// would have to call Foo() 100% of the time to use Foo's methods
+	Foo.prototype.methodOne = function(bar) {
+	  alert(bar);
+	};
+	
+	// same again
+	Foo.prototype.methodTwo = function(bar2) {
+	  alert(bar2);
+	};
+	
+	// and these are only executed if the enclosing function is actually called
+	// and who knows if that will ever happen?
+	Bar = function(pez) {
+	  alert(pez);
+	};
+	Zop.prototype.zap = function(p){
+		alert(p);
+	};
+	
+	// but this is only visible inside Foo
+	function inner() {
+	}
+};

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/global.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/global.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/global.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/global.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,13 @@
+/** ecks */
+var x = [1, 2, 4];
+
+var y = {
+	foo: function(){
+	}
+}
+
+bar = function() {
+}
+
+function zop() {
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/globals.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/globals.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/globals.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/globals.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,25 @@
+function example(/**Circle*/a, b) {
+	/** a global defined in function  */
+	var number = a;
+	
+	var hideNumber = function(){
+	}
+	
+	setNumber = function(){
+	}
+	alert('You have chosen: ' + b);
+}
+
+function initPage() {
+	var supported = document.createElement && document.getElementsByTagName;
+	if (!supported) return;
+	// start of DOM script
+	var x = document.getElementById('writeroot');
+	// etc.
+}
+
+/** an example var */
+var document = new Document(x, y);
+
+var getNumber = function(){
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/ignore.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/ignore.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/ignore.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/ignore.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,10 @@
+/**
+ * A test constructor.
+ * @constructor
+ * @ignore
+ */
+function Ignored() {
+	/** a method */
+    this.bar = function() {
+    }
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/inner.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/inner.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/inner.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/inner.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,16 @@
+/**
+ * @constructor
+ */
+function Outer() {
+  /**
+   * @constructor
+   */
+  function Inner(name) {
+    /** The name of this. */
+    this.name = name;
+  }
+
+  this.open = function(name) {
+    return (new Inner(name));
+  }
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/jsdoc_test.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/jsdoc_test.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/jsdoc_test.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/jsdoc_test.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,477 @@
+/** 
+ * @fileoverview This file is to be used for testing the JSDoc parser
+ * It is not intended to be an example of good JavaScript OO-programming,
+ * nor is it intended to fulfill any specific purpose apart from 
+ * demonstrating the functionality of the 
+ * <a href='http://sourceforge.net/projects/jsdoc'>JSDoc</a> parser
+ *
+ * @author Gabriel Reid gab_reid@users.sourceforge.net
+ * @version 0.1 
+ */
+
+
+/**
+ * Construct a new Shape object.
+ * @class This is the basic Shape class.  
+ * It can be considered an abstract class, even though no such thing
+ * really existing in JavaScript
+ * @constructor
+ * @throws MemoryException if there is no more memory 
+ * @throws GeneralShapeException rarely (if ever)
+ * @return {Shape|Coordinate} A new shape.
+ */
+function Shape(){
+  
+   /**
+    * This is an example of a function that is not given as a property
+    * of a prototype, but instead it is assigned within a constructor.
+    * For inner functions like this to be picked up by the parser, the
+    * function that acts as a constructor <b>must</b> be denoted with
+    * the <b>&#64;constructor</b> tag in its comment.
+    * @type String
+    */
+   this.getClassName = function(){
+      return "Shape";
+   }
+
+   /** 
+    * This is an inner method, just used here as an example
+    * @since version 0.5
+    * @author Sue Smart
+    */
+   function addReference(){
+       // Do nothing...
+   }
+   
+}
+
+/**
+ * Create a new Hexagon instance.
+ * @extends Shape
+ * @class Hexagon is a class that is a <i>logical</i> sublcass of 
+ * {@link Shape} (thanks to the <code>&#64;extends</code> tag), but in 
+ * reality it is completely unrelated to Shape.
+ * @param {int} sideLength The length of one side for the new Hexagon
+ * @example
+ * var h = new Hexagon(2);
+ * @example
+ * if (hasHex) {
+ *     hex   = new Hexagon(5);
+ *     color = hex.getColor();
+ * }
+ */
+function Hexagon(sideLength) {
+}
+
+
+/**
+ * This is an unattached (static) function that adds two integers together.
+ * @param {int} One The first number to add 
+ * @param {int} Two The second number to add 
+ * @author Gabriel Reid
+ * @deprecated So you shouldn't use it anymore!
+ */
+function Add(One, Two){
+    return One + Two;
+}
+
+
+/**
+ * The color of this shape
+ * @type Color
+ */
+Shape.prototype.color = null;
+
+/**
+ * The border of this shape. 
+ * @field
+ * @type int
+ */
+Shape.prototype.border = function(){return border;};
+
+/*
+ * These are all the instance method implementations for Shape
+ */
+
+/**
+ * Get the coordinates of this shape. It is assumed that we're always talking
+ * about shapes in a 2D location here.
+ * @requires The {@link Shape} class
+ * @returns A Coordinate object representing the location of this Shape
+ * @type Coordinate[]
+ */
+Shape.prototype.getCoords = function(){
+   return this.coords;
+}
+
+/**
+ * Get the color of this shape.
+ * @see #setColor
+ * @see The <a href="http://example.com">Color</a> library.
+ * @link Shape
+ * @type Color
+ */
+Shape.prototype.getColor = function(){
+   return this.color;
+}
+
+/**
+ * Set the coordinates for this Shape
+ * @param {Coordinate} coordinates The coordinates to set for this Shape
+ */
+Shape.prototype.setCoords = function(coordinates){
+   this.coords = coordinates;
+}
+
+/**
+ * Set the color for this Shape
+ * @param {Color} color The color to set for this Shape
+ * @param other There is no other param, but it can still be documented if
+ *              optional parameters are used
+ * @throws NonExistantColorException (no, not really!)
+ * @see #getColor
+ */
+Shape.prototype.setColor = function(color){
+   this.color = color;
+}
+
+/**
+ * Clone this shape
+ * @returns A copy of this shape
+ * @type Shape
+ * @author Gabriel Reid
+ */
+Shape.prototype.clone = function(){
+   return new Shape();
+}
+
+/**
+ * Create a new Rectangle instance. 
+ * @class A basic rectangle class, inherits from Shape.
+ * This class could be considered a concrete implementation class
+ * @constructor
+ * @param {int} width The optional width for this Rectangle
+ * @param {int} height Thie optional height for this Rectangle
+ * @author Gabriel Reid
+ * @see Shape is the base class for this
+ * @augments Shape
+ * @hilited
+ */
+function Rectangle(width, // This is the width 
+                  height // This is the height
+                  ){
+   if (width){
+      this.width = width;
+      if (height){
+	 this.height = height;
+      }
+   }
+}
+
+
+/* Inherit from Shape */
+Rectangle.prototype = new Shape();
+
+/**
+ * Value to represent the width of the Rectangle.
+ * <br>Text in <b>bold</b> and <i>italic</i> and a 
+ * link to <a href="http://sf.net">SourceForge</a>
+ * @private
+ * @type int
+ */
+Rectangle.prototype.width = 0;
+
+/**
+ * Value to represent the height of the Rectangle
+ * @private
+ * @type int
+ */
+Rectangle.prototype.height = 0;
+
+/**
+ * Get the type of this object. 
+ * @type String
+ */
+Rectangle.prototype.getClassName= function(){
+    return "Rectangle";
+}
+
+/**
+ * Get the value of the width for the Rectangle
+ * @type int
+ * @see Rectangle#setWidth
+ */
+Rectangle.prototype.getWidth = function(){
+   return this.width;
+}
+
+/**
+ * Get the value of the height for the Rectangle.
+ * Another getter is the {@link Shape#getColor} method in the 
+ * {@link Shape} base class.  
+ * @return The height of this Rectangle
+ * @type int
+ * @see Rectangle#setHeight
+ */
+Rectangle.prototype.getHeight = function(){
+    return this.height;
+}
+
+/**
+ * Set the width value for this Rectangle.
+ * @param {int} width The width value to be set
+ * @see #setWidth
+ */
+Rectangle.prototype.setWidth = function(width){
+   this.width = width;
+}
+
+/**
+ * Set the height value for this Rectangle.
+ * @param {int} height The height value to be set
+ * @see #getHeight
+ */
+Rectangle.prototype.setHeight = function(height){
+   this.height = height;
+}
+
+/**
+ * Get the value for the total area of this Rectangle
+ * @return total area of this Rectangle
+ * @type int
+ */
+Rectangle.prototype.getArea = function(){
+   return width * height;
+}
+
+
+/**
+ * Create a new Square instance.
+ * @class A Square is a subclass of {@link Rectangle}
+ * @param {int} width The optional width for this Rectangle
+ * @param {int} height The optional height for this Rectangle
+ * @augments Rectangle
+ */
+function Square(width, height){
+   if (width){
+      this.width = width;
+      if (height){
+	 this.height = height;
+      }
+   } 
+   
+}
+
+/* Square is a subclass of Rectangle */
+Square.prototype = new Rectangle();
+
+/**
+ * Set the width value for this Shape.
+ * @param {int} width The width value to be set
+ * @see #getWidth
+ */
+Square.prototype.setWidth = function(width){
+   this.width = this.height = width;
+}
+
+/**
+ * Set the height value for this Shape 
+ * Sets the {@link Rectangle#height} attribute in the Rectangle.
+ * @param {int} height The height value to be set
+ */
+Square.prototype.setHeight = function(height){
+   this.height = this.width = height;
+}
+
+
+/**
+ * Create a new Circle instance based on a radius.
+ * @class Circle class is another subclass of Shape
+ * @extends Shape
+ * @param {int} radius The optional radius of this {@link Circle }
+ * @mixin Square.prototype.setWidth as this.setDiameter
+ */
+function Circle(radius){
+   if (radius) {
+      /** The radius of the this Circle. */
+      this.radius = radius;
+   }
+}
+
+/* Circle inherits from {@link Shape} */
+Circle.prototype = new Shape();
+
+/** 
+ * The radius value for this Circle 
+ * @private
+ * @type int
+ */
+Circle.prototype.radius = 0;
+
+/** 
+ * A very simple class (static) field that is also a constant
+ * @final
+ * @type float
+ */
+Circle.PI = 3.14;
+
+/**
+ * Get the radius value for this Circle
+ * @type int
+ * @see #setRadius
+ */
+Circle.prototype.getRadius = function(){
+   return this.radius;
+}
+
+/** 
+ * Set the radius value for this Circle
+ * @param {int} radius The {@link Circle#radius} value to set
+ * @see #getRadius
+ */
+Circle.prototype.setRadius = function(radius){
+   this.radius = radius;
+}
+
+/** 
+ * An example of a  class (static) method that acts as a factory for Circle
+ * objects. Given a radius value, this method creates a new Circle.
+ * @param {int} radius The radius value to use for the new Circle.
+ * @type Circle
+ */
+Circle.createCircle = function(radius){
+    return new Circle(radius);
+}
+
+
+/**
+ * Create a new Coordinate instance based on x and y grid data.
+ * @class Coordinate is a class that can encapsulate location information.
+ * @param {int} [x=0] The optional x portion of the Coordinate
+ * @param {int} [y=0] The optinal y portion of the Coordinate
+ */
+function Coordinate(x, y){
+   if (x){
+      this.x = x;
+      if (y){
+	 this.y = y;
+      }
+   }
+}
+
+/** 
+ * The x portion of the Coordinate 
+ * @type int
+ * @see #getX
+ * @see #setX
+ */
+Coordinate.prototype.x = 0;
+
+/** 
+ * The y portion of the Coordinate 
+ * @type int
+ * @see #getY
+ * @see #setY
+ */
+Coordinate.prototype.y = 0;
+
+/**
+ * Gets the x portion of the Coordinate.
+ * @type int
+ * @see #setX
+ */
+Coordinate.prototype.getX = function(){
+   return this.x;
+}
+
+/** 
+ * Get the y portion of the Coordinate.
+ * @type int
+ * @see #setY
+ */
+Coordinate.prototype.getY = function(){
+   return this.y;
+}
+
+/**
+ * Sets the x portion of the Coordinate.
+ * @param {int} x The x value to set
+ * @see #getX
+ */
+Coordinate.prototype.setX = function(x){
+   this.x = x;
+}
+
+/** 
+ * Sets the y portion of the Coordinate.
+ * @param {int} y The y value to set
+ * @see #getY
+ */
+Coordinate.prototype.setY = function(y){
+   this.y = y;
+}
+
+/**
+ * @class This class exists to demonstrate the assignment of a class prototype
+ * as an anonymous block.
+ */
+function ShapeFactory(){
+}
+
+ShapeFactory.prototype = {
+   /** 
+    * Creates a new {@link Shape} instance.
+    * @return A new {@link Shape}
+    * @type Shape
+    */
+   createShape: function(){
+      return new Shape();
+   }
+}
+
+/**
+ * An example of a singleton class
+ * @param ... Arguments represent {@link coordinate}s in the shape.
+ * @constructor
+ */
+MySingletonShapeFactory = function(){
+
+   /**
+    * Get the next {@link Shape}
+    * @type Shape
+    * @return A new {@link Shape}
+    */
+   this.getShape = function(){ 
+      return null; 
+   }
+
+}
+
+
+/** 
+ * Create a new Foo instance.
+ * @class This is the Foo class. It exists to demonstrate 'nested' classes.
+ * @constructor 
+ * @see Foo.Bar
+ */
+function Foo(){}
+
+/** 
+ * Creates a new instance of Bar.
+ * @class This class exists to demonstrate 'nested' classes.
+ * @constructor 
+ * @see Foo.Bar
+ */
+function Bar(){}
+
+/** 
+ * Nested class
+ * @constructor 
+ */
+Foo.Bar = function(){
+	/** The x. */ this.x = 2;
+}
+
+Foo.Bar.prototype = new Bar();
+/** The y. */ 
+Foo.Bar.prototype.y = '3';

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/lend.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/lend.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/lend.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/lend.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,33 @@
+ /** @class  */
+var Person = Class.create(
+    /**
+      @lends Person.prototype
+    */
+    {
+      initialize: function(name) {
+            this.name = name;
+        },
+        say: function(message) {
+            return this.name + ': ' + message;
+        }
+    }
+ );
+
+/** @lends Person.prototype */
+{
+	/** like say but more musical */
+	sing: function(song) {
+	}
+}
+
+/** @lends Person */
+{
+	getCount: function() {
+	}
+}
+
+/** @lends Unknown.prototype */
+{
+	notok: function() {
+	}
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,20 @@
+/** @constructor */
+pack = function() {
+	this.init = function(){}
+	function config(){}
+}
+ 
+ pack.build = function(task) {};
+
+/** @memberOf pack */
+pack.install = function() {}
+
+/** @memberOf pack */
+pack.install.overwrite = function() {}
+
+/** @memberOf pack */
+clean = function() {}
+
+
+/** @memberOf pack-config */
+install = function() {};

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof_constructor.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof_constructor.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof_constructor.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/memberof_constructor.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,15 @@
+/** @constructor */
+function Circle(){}
+
+/**
+ @constructor
+ @memberOf Circle.prototype
+ */
+Tangent = function(){};
+
+/**
+	@member Circle.prototype.Tangent.prototype
+*/
+getDiameter = function(){};
+
+

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/name.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/name.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/name.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/name.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,19 @@
+/**
+ @name Response
+ @class
+*/
+
+Response.prototype = {
+	/**
+	 @name Response#text
+	 @function
+	 @description
+		Gets the body of the response as plain text
+	 @returns {String}
+		Response as text
+	*/
+
+	text: function() {
+		return this.nativeResponse.responseText;
+	}
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/namespace_nested.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/namespace_nested.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/namespace_nested.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/namespace_nested.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,23 @@
+/** 
+	@namespace This is the first namespace.
+*/
+ns1 = {};
+
+/** 
+	This is the second namespace.
+	@namespace
+*/
+ns1.ns2 = {};
+
+/**
+	This part of ns1.ns2
+	@constructor
+*/
+ns1.ns2.Function1 = function() {
+};
+
+ns1.staticFunction = function() {
+};
+
+/** A static field in a namespace. */
+ns1.ns2.staticField = 1;

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/nocode.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/nocode.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/nocode.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/nocode.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,13 @@
+/**#nocode+*/
+    /**
+      @name star
+      @function
+    */
+    function blahblah() {
+    
+    }
+/**#nocode-*/
+
+function yaddayadda() {
+
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/oblit_anon.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/oblit_anon.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/oblit_anon.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/oblit_anon.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,20 @@
+/** the options */
+opt = Opt.get(
+	arguments, 
+	{
+	 d: "directory",
+	 c: "conf",
+	 "D[]": "define"
+	}
+);
+
+/** configuration */
+opt.conf = {
+	/** keep */
+	keep: true,
+	/** base */
+	base: getBase(this, {p: properties})
+}
+
+
+

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/overview.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/overview.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/overview.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/overview.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,20 @@
+/**
+ * @overview This "library" contains a 
+ *               lot of classes and functions.
+ * @example
+ <pre>
+	var x (x < 1);
+	alert("This 'is' \"code\"");
+ </pre>
+ * @name My Cool Library
+ * @author 	Joe Smith jsmith@company.com
+ * @version 	0.1 
+ */
+ 
+/** 
+ * Gets the current foo 
+ * @param {String} fooId	The unique identifier for the foo.
+ * @return {Object}	Returns the current foo.
+ */
+function getFoo(fooID){
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/param_inline.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/param_inline.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/param_inline.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/param_inline.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,37 @@
+/**
+	@constructor
+	@param columns The number of columns.
+*/
+function Layout(/**int*/columns){
+	/**
+		@param [id] The id of the element.
+		@param elName The name of the element.
+	*/
+	this.getElement = function(
+		/** string */ elName,
+		/** number|string */ id
+	) {
+	};
+	
+	/** 
+		@constructor
+	 */
+	this.Canvas = function(top, left, /**int*/width, height) {
+		/** Is it initiated yet? */
+		this.initiated = true;
+	}
+	
+	this.rotate = function(/**nothing*/) {
+	}
+	
+	/** 
+	@param x
+	@param y
+	@param {zoppler} z*/
+	this.init = function(x, y, /**abbler*/z) {
+		/** The xyz. */
+		this.xyz = x+y+z;
+		this.getXyz = function() {
+		}
+	}
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/params_optional.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/params_optional.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/params_optional.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/params_optional.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,8 @@
+
+/**
+ * @param {Page[]} pages
+ * @param {number} [id] Specifies the id, if applicable.
+ * @param {String} [title = This is untitled.] Specifies the title.
+ */
+function Document(pages, id, title){
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,17 @@
+/** @constructor */
+function Article() {
+}
+
+Article.prototype.init = function(title) {
+	/** the instance title */
+	this.title = title;
+	
+	/** the static counter */
+	Article.counter = 1;
+}
+
+a = new Article();
+a.Init("my title");
+
+print(a.title);
+print(Article.counter);
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_nested.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_nested.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_nested.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_nested.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,9 @@
+/** @constructor */
+function Word() {
+}
+
+Word.prototype.reverse = function() {
+}
+
+Word.prototype.reverse.utf8 = function() {
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,13 @@
+/** @constructor */
+function Article() {
+}
+
+Article.prototype = {
+	/** instance get title */
+	getTitle: function(){
+	}
+}
+
+/** static get title */
+Article.getTitle = function(){
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,24 @@
+/** @constructor */
+function Article() {
+}
+
+Article.prototype = {
+	/** @constructor */
+	Title: function(title) {
+		/** the value of the Title instance */
+		this.title = title;
+	},
+	
+	init: function(pages) {
+		/** the value of the pages of the Article instance */
+		this.pages = pages;
+	}
+}
+
+f = new Article();
+f.init("one two three");
+
+t = new f.Title("my title");
+
+print(f.pages);
+print(t.title);
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/public.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/public.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/public.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/public.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,10 @@
+/**@constructor*/
+function Foo() {
+	/**
+		@public
+		@static
+		@field
+	*/
+	var bar = function(x) {
+	}
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,42 @@
+
+/**
+ * Builtin object.
+ * @class
+ * @name Array
+ */
+ 
+/**#@+
+ * Extension to builtin array.
+ * @memberOf Array
+ * @method
+ */
+ 
+/**
+ * @returns Boolen if some array members...
+ */
+Array.prototype.some = function(){};
+
+/**
+ * Change every element of an array.
+ * @returns Filtered array copy.
+ */
+Array.prototype.filter = function(){};
+
+/**#@-*/
+
+
+/**
+ * A first in, first out data structure.
+ * @constructor
+ */
+Queue = function(){};
+
+/**#@+
+ * Extension to Queue.
+ * @memberOf Queue
+ */
+
+rewind = function(){
+}
+
+// should close automatically here.
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared2.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared2.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared2.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shared2.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,2 @@
+startOver = function(){
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shortcuts.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shortcuts.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shortcuts.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/shortcuts.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,22 @@
+// /**#=+
+//  * {
+//  *	'D': 'Date.prototype',
+//  *	'$N': 'Number'
+//  * }
+//  */
+// var D = Date.prototype,
+// $N = Number;
+// 
+// D.locale = function(){
+// };
+// 
+// /**
+// 	@return {string} The cardinal number string.
+// */
+// $N.nth = function(n){
+// };
+// 
+// LOAD.file = function(){
+// }
+// 
+// /**#=-*/
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/static_this.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/static_this.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/static_this.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/static_this.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,13 @@
+/** the parent */
+var box = {};
+
+/** @namespace */
+box.holder = {}
+
+box.holder.foo = function() {
+	/** the counter */
+	this.counter = 1;
+}
+
+box.holder.foo();
+print(box.holder.counter);

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/synonyms.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/synonyms.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/synonyms.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/synonyms.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,23 @@
+/**
+	@class
+	@inherits Bar#zop as #my_zop
+*/
+function Foo() {
+	/** this is a zip. */
+	this.zip = function() {}
+	
+	/** from Bar */
+	this.my_zop = new Bar().zop;
+}
+
+/**
+	@class
+	@borrows Foo#zip as this.my_zip
+*/
+function Bar() {
+	/** this is a zop. */
+	this.zop = function() {}
+	
+	/** from Foo */
+	this.my_zip = new Foo().zip;
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/tosource.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/tosource.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/tosource.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/tosource.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,23 @@
+/**
+ * @param {Object} object
+ * @return {string}
+ */
+function valueOf(object) {}
+
+/**
+ * @param {Object} object
+ * @return {string}
+ */
+function toString(object) {}
+
+/**
+ * @param {Object} object
+ * @return {string}
+ */
+function toSource(object) {}
+
+/**
+ * @param {Object} object
+ * @return {string}
+ */
+function constructor(object) {}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/variable_redefine.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/variable_redefine.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/variable_redefine.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/app/test/variable_redefine.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,14 @@
+/** @constructor */
+function Foo() {
+	var bar = 1;
+	bar = 2; // redefining a private
+	
+	this.baz = 1;
+	baz = 2; // global
+	
+	/** a private */
+	var blap = {
+		/** in here */
+		tada: 1
+	}
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/changes.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/changes.txt?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/changes.txt (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/changes.txt Mon Nov 17 14:42:45 2008
@@ -0,0 +1,47 @@
+== 2.0.1 ==
+
+  * Fixed bug that prevented @fileOverview tag from being recognized.
+  * Added support for @fieldOf as a synonym for @field plus @memberOf.
+  * Added support for @name tag in a @fileOverview comment to control the displayed name of the file.
+  * Added support for multiple @example tags. ( issue #152 )
+  * Modified style sheet of jsdoc template to make more readable. ( issue #151 )
+  * Fixed bug that prevented @since documentation from displaying correctly when it appeared in a class. ( issue #150 )
+  * Fixed bug that caused inhertited properties to sometimes not resolve correctly. ( issue #144 )
+  * Modified so that trailing whitespace in @example is always trimmed. ( issue #153 )
+  * Added support for elseif to JsPlate. (hat tip to fredck)
+  * Added support for @location urls in the @overview comment to the jsdoc template.
+
+== Changes From Versions 1.4.0 to 2.0.0 ==
+
+  * Upgraded included version of Rhino from 1.6 to 1.7R1.
+  * Removed circular references in parsed documentation objects.
+  * Improved inheritance handling, now properties and events can be inherited same as methods.
+  * Improved handling of cross-file relationships, now having two related objects in separate files is not a problem.
+  * Improved ability to recognize membership of previously defined objects.
+  * Added ability to redefine parsing behavior with plugins.
+  * @methodOf is a synonym for @function and @memberOf.
+  * Added @default to document default values of members that are objects.
+  * Added ability to parse and refer to inner functions.
+  * Fixed bug that appeared when calling a method to set properties of the instance referred to by "this".
+  * Added ability to automatically create links to other symbols.
+  * New "jsdoc" template now produces fully W3C valid XHTML.
+  * Inline parameter type hint comments are now documented.
+  * Fixed error: Locally scoped variables (declared with var) no longer appear as global.
+  * It is now possible to run JsDoc Toolkit from any directory.
+  * Added support for inline {@link ...} tags.
+  * Added support for the -H command-line option to allow for custom content handlers.
+  * Tag names @inherits and @scope changed to @borrows and @lends.
+  ? Combining @constructor in a doclet with @lends now supported.
+  * Multiple @lend tags now supported.
+  * Added support for the @constructs tag, used inside a @lends block.
+  * Added support for the @constant tag.
+  * Fixed bug that prevented the use of [] as a default value.
+  * Added support for the @field tag.
+  * Added support for the @public tag (applied to inner functions).
+  * @namespace tag can now be applied to functions, not just object literals.
+  * Added support for the -s command line option to suppress source code output.
+  * Added new unit test framework.
+  * Underscored symbols are now treated as if they have a @private tag by default.
+  * Improved support for anonymous constructors.
+  * Added support for the nocode meta tag.
+  
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/conf/sample.conf
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/conf/sample.conf?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/conf/sample.conf (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/conf/sample.conf Mon Nov 17 14:42:45 2008
@@ -0,0 +1,31 @@
+/*
+	This is an example of one way you could set up a configuration file to more
+	conveniently define some commandline options. You might like to do this if
+	you frequently reuse the same options. Note that you don't need to define
+	every option in this file, you can combine a configuration file with
+	additional options on the commandline if your wish.
+	
+	You would include this configuration file by running JsDoc Toolkit like so:
+	java -jar jsrun.jar app/run.js -c=conf/sample.conf
+
+*/
+
+{
+	// source files to use
+	_: ['app/test/jsdoc_test.js'],
+	
+	// document all functions, even uncommented ones
+	a: true,
+	
+	// including those marked @private
+	p: true,
+	
+	// some extra variables I want to include
+	D: {generatedBy: "Michael Mathews", copyright: "2008"},
+	
+	// use this directory as the output directory
+	d: "docs",
+	
+	// use this template
+	t: "templates/jsdoc"
+}
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build.xml?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build.xml (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build.xml Mon Nov 17 14:42:45 2008
@@ -0,0 +1,36 @@
+<project>
+   <target name="clean">
+        <delete dir="build"/>
+    </target>
+
+    <target name="compile">
+        <mkdir dir="build/classes"/>
+        <javac 
+         srcdir="src" destdir="build/classes"
+         classpath="./classes/js.jar"
+        />
+    </target>
+
+    <target name="jar">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/jsrun.jar" basedir="build/classes">
+            <manifest>
+               <attribute name="Main-Class" value="JsRun"/>
+               <attribute name="Class-Path" value="./java/classes/js.jar"/>
+            </manifest>
+        </jar>
+    </target>
+    
+    <target name="debugjar">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/jsdebug.jar" basedir="build/classes">
+            <manifest>
+               <attribute name="Main-Class" value="JsDebugRun"/>
+               <attribute name="Class-Path" value="./java/classes/js.jar"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="clean-build" depends="clean,compile,jar"/>
+    <target name="clean-debug" depends="clean,compile,debugjar"/>
+</project>
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build_1.4.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build_1.4.xml?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build_1.4.xml (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/build_1.4.xml Mon Nov 17 14:42:45 2008
@@ -0,0 +1,36 @@
+<project default="clean-build"><!-- use this build script if you are stuck with ant version 1.4 -->
+   <target name="clean">
+        <delete dir="build"/>
+    </target>
+
+    <target name="compile">
+        <mkdir dir="build/classes"/>
+        <javac 
+         srcdir="src" destdir="build/classes"
+         classpath="./classes/js.jar"
+        />
+    </target>
+
+    <target name="jar">
+        <mkdir dir="build/jar"/>
+        <jar jarfile="build/jar/jsrun.jar" basedir="build/classes">
+            <manifest>
+               <attribute name="Main-Class" value="JsRun"/>
+               <attribute name="Class-Path" value="./java/classes/js.jar"/>
+            </manifest>
+        </jar>
+    </target>
+    
+    <target name="debugjar">
+        <mkdir dir="build/jar"/>
+        <jar jarfile="build/jar/jsdebug.jar" basedir="build/classes">
+            <manifest>
+               <attribute name="Main-Class" value="JsDebugRun"/>
+               <attribute name="Class-Path" value="./java/classes/js.jar"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="clean-build" depends="clean,compile,jar"/>
+    <target name="clean-debug" depends="clean,compile,debugjar"/>
+</project>

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/classes/js.jar
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/classes/js.jar?rev=718422&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/classes/js.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsDebugRun.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsDebugRun.java?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsDebugRun.java (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsDebugRun.java Mon Nov 17 14:42:45 2008
@@ -0,0 +1,21 @@
+/**
+ * A trivial bootstrap class that simply adds the path to the
+ * .js file as an argument to the Rhino call. This little hack
+ * allows the code in the .js file to have access to it's own 
+ * path via the Rhino arguments object. This is necessary to 
+ * allow the .js code to find resource files in a location 
+ * relative to itself.
+ *
+ * USAGE: java -jar jsdebug.jar path/to/file.js
+ */
+public class JsDebugRun {
+	public static void main(String[] args) {
+		String[] jsargs = {"-j="+args[0]};
+		
+		String[] allArgs = new String[jsargs.length + args.length];
+		System.arraycopy(args, 0, allArgs, 0, args.length);
+		System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length);
+
+		org.mozilla.javascript.tools.debugger.Main.main(allArgs);
+    }
+}

Propchange: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsDebugRun.java
------------------------------------------------------------------------------
    svn:executable = *

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsRun.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsRun.java?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsRun.java (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/java/src/JsRun.java Mon Nov 17 14:42:45 2008
@@ -0,0 +1,21 @@
+/**
+ * A trivial bootstrap class that simply adds the path to the
+ * .js file as an argument to the Rhino call. This little hack
+ * allows the code in the .js file to have access to it's own 
+ * path via the Rhino arguments object. This is necessary to 
+ * allow the .js code to find resource files in a location 
+ * relative to itself.
+ *
+ * USAGE: java -jar jsrun.jar path/to/file.js
+ */
+public class JsRun {
+	public static void main(String[] args) {
+		String[] jsargs = {"-j="+args[0]};
+		
+		String[] allArgs = new String[jsargs.length + args.length];
+		System.arraycopy(args, 0, allArgs, 0, args.length);
+		System.arraycopy(jsargs, 0, allArgs, args.length ,jsargs.length);
+
+		org.mozilla.javascript.tools.shell.Main.main(allArgs);
+    }
+}

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsdebug.jar
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsdebug.jar?rev=718422&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsdebug.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsrun.jar
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsrun.jar?rev=718422&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsrun.jar
------------------------------------------------------------------------------
    svn:executable = *

Propchange: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/jsrun.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,17 @@
+<div align="center">{+new Link().toFile("index.html").withText("Class Index")+}
+| {+new Link().toFile("files.html").withText("File Index")+}</div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+	<for each="thisClass" in="data">
+	<li>{!
+		if (thisClass.alias == "_global_") {
+			output += "<i>"+new Link().toClass(thisClass.alias)+"</i>";
+		}
+		else {
+			output += new Link().toClass(thisClass.alias);
+		}
+	!}</li>
+	</for>
+</ul>
+<hr />
\ No newline at end of file

Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}"" />
+		{! Link.base = ""; /* all generated links will be relative to this */ !}
+		<title>JsDoc Reference - File Index</title>
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<style type="text/css">
+		{+include("static/default.css")+}
+		</style>
+	</head>
+	
+	<body>
+		{+include("static/header.html")+}
+		
+		<div id="index">
+			{+publish.classesIndex+}
+		</div>
+		
+		<div id="content">
+			<h1 class="classTitle">File Index</h1>
+			
+			<for each="item" in="data">
+			<div>
+				<h2>{+new Link().toSrc(item.alias).withText(item.name)+}</h2>
+				<if test="item.desc">{+resolveLinks(summarize(item.desc))+}</if>
+				<dl>
+					<if test="item.author">
+						<dt class="heading">Author:</dt>
+						<dd>{+item.author+}</dd>
+					</if>
+					<if test="item.version">
+						<dt class="heading">Version:</dt>
+							<dd>{+item.version+}</dd>
+					</if>
+					{! var locations = item.comment.getTag('location').map(function($){return $.toString().replace(/(^\$ ?| ?\$$)/g, '').replace(/^HeadURL: https:/g, 'http:');}) !}
+					<if test="locations.length">
+						<dt class="heading">Location:</dt>
+							<for each="location" in="locations">
+							<dd><a href="{+location+}">{+location+}</a></dd>
+							</for>
+					</if>
+				</dl>
+			</div>
+			<hr />
+			</for>
+			
+		</div>
+		<div class="fineprint" style="clear:both">
+			<if test="JSDOC.opt.D.copyright">&copy;{+JSDOC.opt.D.copyright+}<br /></if>
+			Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+		</div>
+	</body>
+</html>
\ No newline at end of file