xultestrunner 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. data/.gitignore +2 -0
  2. data/.gitmodules +3 -0
  3. data/LICENSE +21 -0
  4. data/README +17 -0
  5. data/Rakefile +50 -0
  6. data/VERSION +1 -0
  7. data/bin/xultest +13 -0
  8. data/lib/xultestrunner.rb +1 -0
  9. data/xulapp/application.ini +9 -0
  10. data/xulapp/chrome/chrome.manifest +2 -0
  11. data/xulapp/chrome/content/interface/boot.xul +20 -0
  12. data/xulapp/chrome/content/interface/testharness.html +30 -0
  13. data/xulapp/chrome/content/lib/xultestcase.js +140 -0
  14. data/xulapp/chrome/content/lib/xultestrunner.js +120 -0
  15. data/xulapp/chrome/content/vendor/prototype/LICENSE +16 -0
  16. data/xulapp/chrome/content/vendor/prototype/prototype.js +4874 -0
  17. data/xulapp/chrome/content/vendor/scriptaculous/LICENSE +20 -0
  18. data/xulapp/chrome/content/vendor/scriptaculous/test.css +90 -0
  19. data/xulapp/chrome/content/vendor/scriptaculous/unittest.js +566 -0
  20. data/xulapp/chrome/content/vendor/xpcomcore/LICENSE +21 -0
  21. data/xulapp/chrome/content/vendor/xpcomcore/README +27 -0
  22. data/xulapp/chrome/content/vendor/xpcomcore/Rakefile +83 -0
  23. data/xulapp/chrome/content/vendor/xpcomcore/VERSION.yml +5 -0
  24. data/xulapp/chrome/content/vendor/xpcomcore/bootstrapper.js +32 -0
  25. data/xulapp/chrome/content/vendor/xpcomcore/components/XPCOMCore.js +120 -0
  26. data/xulapp/chrome/content/vendor/xpcomcore/doc/files.html +241 -0
  27. data/xulapp/chrome/content/vendor/xpcomcore/doc/index.html +243 -0
  28. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/Error.html +256 -0
  29. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/Kernel.html +1030 -0
  30. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/LoadError.html +319 -0
  31. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/SelfConceptError.html +319 -0
  32. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/_global_.html +316 -0
  33. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/src/lib_file.js.html +53 -0
  34. data/xulapp/chrome/content/vendor/xpcomcore/doc/symbols/src/lib_kernel.js.html +251 -0
  35. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/README.txt +186 -0
  36. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame.js +33 -0
  37. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Chain.js +102 -0
  38. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Dumper.js +144 -0
  39. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Hash.js +84 -0
  40. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Link.js +153 -0
  41. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Namespace.js +10 -0
  42. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Opt.js +134 -0
  43. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Reflection.js +26 -0
  44. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/String.js +93 -0
  45. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/frame/Testrun.js +129 -0
  46. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/handlers/FOODOC.js +26 -0
  47. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC.js +26 -0
  48. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +159 -0
  49. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +16 -0
  50. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +292 -0
  51. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC.js +104 -0
  52. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +200 -0
  53. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +294 -0
  54. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +126 -0
  55. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +109 -0
  56. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Lang.js +144 -0
  57. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Parser.js +145 -0
  58. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +33 -0
  59. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +645 -0
  60. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +241 -0
  61. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +41 -0
  62. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Token.js +18 -0
  63. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +332 -0
  64. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +133 -0
  65. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Util.js +32 -0
  66. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Walker.js +474 -0
  67. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/main.js +111 -0
  68. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/commentSrcJson.js +20 -0
  69. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/frameworkPrototype.js +16 -0
  70. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/functionCall.js +10 -0
  71. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/publishSrcHilite.js +62 -0
  72. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/symbolLink.js +10 -0
  73. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/tagParamConfig.js +31 -0
  74. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/plugins/tagSynonyms.js +43 -0
  75. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/run.js +348 -0
  76. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/t/TestDoc.js +144 -0
  77. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/t/runner.js +13 -0
  78. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test.js +325 -0
  79. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/addon.js +24 -0
  80. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/anon_inner.js +14 -0
  81. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/augments.js +31 -0
  82. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/augments2.js +26 -0
  83. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/borrows.js +46 -0
  84. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/borrows2.js +23 -0
  85. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/config.js +22 -0
  86. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/constructs.js +18 -0
  87. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/encoding.js +10 -0
  88. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/encoding_other.js +12 -0
  89. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/event.js +54 -0
  90. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/exports.js +14 -0
  91. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/functions_anon.js +39 -0
  92. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/functions_nested.js +33 -0
  93. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/global.js +13 -0
  94. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/globals.js +25 -0
  95. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/ignore.js +10 -0
  96. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/inner.js +16 -0
  97. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/jsdoc_test.js +477 -0
  98. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/lend.js +33 -0
  99. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/memberof.js +19 -0
  100. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/memberof_constructor.js +17 -0
  101. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/module.js +17 -0
  102. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/name.js +19 -0
  103. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/namespace_nested.js +23 -0
  104. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/nocode.js +13 -0
  105. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/oblit_anon.js +20 -0
  106. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/overview.js +20 -0
  107. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/param_inline.js +37 -0
  108. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/params_optional.js +8 -0
  109. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/prototype.js +17 -0
  110. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_nested.js +9 -0
  111. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_oblit.js +13 -0
  112. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +24 -0
  113. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/public.js +10 -0
  114. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/scripts/code.js +5 -0
  115. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/scripts/notcode.txt +5 -0
  116. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/shared.js +42 -0
  117. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/shared2.js +2 -0
  118. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/shortcuts.js +22 -0
  119. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/static_this.js +13 -0
  120. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/synonyms.js +31 -0
  121. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/tosource.js +23 -0
  122. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/app/test/variable_redefine.js +14 -0
  123. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/changes.txt +96 -0
  124. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/conf/sample.conf +31 -0
  125. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/java/build.xml +36 -0
  126. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/java/build_1.4.xml +36 -0
  127. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/java/classes/js.jar +0 -0
  128. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/java/src/JsDebugRun.java +21 -0
  129. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/java/src/JsRun.java +21 -0
  130. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/jsdebug.jar +0 -0
  131. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/jsrun.jar +0 -0
  132. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/jsrun.sh +52 -0
  133. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl +17 -0
  134. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl +56 -0
  135. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/class.tmpl +646 -0
  136. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/index.tmpl +39 -0
  137. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/publish.js +200 -0
  138. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/default.css +162 -0
  139. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/header.html +2 -0
  140. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/index.html +19 -0
  141. data/xulapp/chrome/content/vendor/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl +35 -0
  142. data/xulapp/chrome/content/vendor/xpcomcore/lib/file.js +46 -0
  143. data/xulapp/chrome/content/vendor/xpcomcore/lib/kernel.js +244 -0
  144. data/xulapp/chrome/content/vendor/xpcomcore/test/file_test.js +16 -0
  145. data/xulapp/chrome/content/vendor/xpcomcore/test/fixtures/love.js +1 -0
  146. data/xulapp/chrome/content/vendor/xpcomcore/test/fixtures/mad_love.js +1 -0
  147. data/xulapp/chrome/content/vendor/xpcomcore/test/fixtures/mad_world.js +1 -0
  148. data/xulapp/chrome/content/vendor/xpcomcore/test/fixtures/syntax_error.js +1 -0
  149. data/xulapp/chrome/content/vendor/xpcomcore/test/kernel_test.js +88 -0
  150. data/xulapp/components/bootstrap.js +93 -0
  151. data/xulapp/defaults/preferences/prefs.js +14 -0
  152. data/xultestrunner.gemspec +190 -0
  153. metadata +207 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @constructor
3
+ */
4
+ function Outer() {
5
+ /**
6
+ * @constructor
7
+ */
8
+ function Inner(name) {
9
+ /** The name of this. */
10
+ this.name = name;
11
+ }
12
+
13
+ this.open = function(name) {
14
+ return (new Inner(name));
15
+ }
16
+ }
@@ -0,0 +1,477 @@
1
+ /**
2
+ * @fileoverview This file is to be used for testing the JSDoc parser
3
+ * It is not intended to be an example of good JavaScript OO-programming,
4
+ * nor is it intended to fulfill any specific purpose apart from
5
+ * demonstrating the functionality of the
6
+ * <a href='http://sourceforge.net/projects/jsdoc'>JSDoc</a> parser
7
+ *
8
+ * @author Gabriel Reid gab_reid@users.sourceforge.net
9
+ * @version 0.1
10
+ */
11
+
12
+
13
+ /**
14
+ * Construct a new Shape object.
15
+ * @class This is the basic Shape class.
16
+ * It can be considered an abstract class, even though no such thing
17
+ * really existing in JavaScript
18
+ * @constructor
19
+ * @throws MemoryException if there is no more memory
20
+ * @throws GeneralShapeException rarely (if ever)
21
+ * @return {Shape|Coordinate} A new shape.
22
+ */
23
+ function Shape(){
24
+
25
+ /**
26
+ * This is an example of a function that is not given as a property
27
+ * of a prototype, but instead it is assigned within a constructor.
28
+ * For inner functions like this to be picked up by the parser, the
29
+ * function that acts as a constructor <b>must</b> be denoted with
30
+ * the <b>&#64;constructor</b> tag in its comment.
31
+ * @type String
32
+ */
33
+ this.getClassName = function(){
34
+ return "Shape";
35
+ }
36
+
37
+ /**
38
+ * This is an inner method, just used here as an example
39
+ * @since version 0.5
40
+ * @author Sue Smart
41
+ */
42
+ function addReference(){
43
+ // Do nothing...
44
+ }
45
+
46
+ }
47
+
48
+ /**
49
+ * Create a new Hexagon instance.
50
+ * @extends Shape
51
+ * @class Hexagon is a class that is a <i>logical</i> sublcass of
52
+ * {@link Shape} (thanks to the <code>&#64;extends</code> tag), but in
53
+ * reality it is completely unrelated to Shape.
54
+ * @param {int} sideLength The length of one side for the new Hexagon
55
+ * @example
56
+ * var h = new Hexagon(2);
57
+ * @example
58
+ * if (hasHex) {
59
+ * hex = new Hexagon(5);
60
+ * color = hex.getColor();
61
+ * }
62
+ */
63
+ function Hexagon(sideLength) {
64
+ }
65
+
66
+
67
+ /**
68
+ * This is an unattached (static) function that adds two integers together.
69
+ * @param {int} One The first number to add
70
+ * @param {int} Two The second number to add
71
+ * @author Gabriel Reid
72
+ * @deprecated So you shouldn't use it anymore! Use {@link Shape#getClassName} instead.
73
+ */
74
+ function Add(One, Two){
75
+ return One + Two;
76
+ }
77
+
78
+
79
+ /**
80
+ * The color of this shape
81
+ * @type Color
82
+ */
83
+ Shape.prototype.color = null;
84
+
85
+ /**
86
+ * The border of this shape.
87
+ * @field
88
+ * @type int
89
+ */
90
+ Shape.prototype.border = function(){return border;};
91
+
92
+ /*
93
+ * These are all the instance method implementations for Shape
94
+ */
95
+
96
+ /**
97
+ * Get the coordinates of this shape. It is assumed that we're always talking
98
+ * about shapes in a 2D location here.
99
+ * @requires The {@link Shape} class
100
+ * @returns A Coordinate object representing the location of this Shape
101
+ * @type Coordinate[]
102
+ */
103
+ Shape.prototype.getCoords = function(){
104
+ return this.coords;
105
+ }
106
+
107
+ /**
108
+ * Get the color of this shape.
109
+ * @see #setColor
110
+ * @see The <a href="http://example.com">Color</a> library.
111
+ * @link Shape
112
+ * @type Color
113
+ */
114
+ Shape.prototype.getColor = function(){
115
+ return this.color;
116
+ }
117
+
118
+ /**
119
+ * Set the coordinates for this Shape
120
+ * @param {Coordinate} coordinates The coordinates to set for this Shape
121
+ */
122
+ Shape.prototype.setCoords = function(coordinates){
123
+ this.coords = coordinates;
124
+ }
125
+
126
+ /**
127
+ * Set the color for this Shape
128
+ * @param {Color} color The color to set for this Shape
129
+ * @param other There is no other param, but it can still be documented if
130
+ * optional parameters are used
131
+ * @throws NonExistantColorException (no, not really!)
132
+ * @see #getColor
133
+ */
134
+ Shape.prototype.setColor = function(color){
135
+ this.color = color;
136
+ }
137
+
138
+ /**
139
+ * Clone this shape
140
+ * @returns A copy of this shape
141
+ * @type Shape
142
+ * @author Gabriel Reid
143
+ */
144
+ Shape.prototype.clone = function(){
145
+ return new Shape();
146
+ }
147
+
148
+ /**
149
+ * Create a new Rectangle instance.
150
+ * @class A basic rectangle class, inherits from Shape.
151
+ * This class could be considered a concrete implementation class
152
+ * @constructor
153
+ * @param {int} width The optional width for this Rectangle
154
+ * @param {int} height Thie optional height for this Rectangle
155
+ * @author Gabriel Reid
156
+ * @see Shape is the base class for this
157
+ * @augments Shape
158
+ * @hilited
159
+ */
160
+ function Rectangle(width, // This is the width
161
+ height // This is the height
162
+ ){
163
+ if (width){
164
+ this.width = width;
165
+ if (height){
166
+ this.height = height;
167
+ }
168
+ }
169
+ }
170
+
171
+
172
+ /* Inherit from Shape */
173
+ Rectangle.prototype = new Shape();
174
+
175
+ /**
176
+ * Value to represent the width of the Rectangle.
177
+ * <br>Text in <b>bold</b> and <i>italic</i> and a
178
+ * link to <a href="http://sf.net">SourceForge</a>
179
+ * @private
180
+ * @type int
181
+ */
182
+ Rectangle.prototype.width = 0;
183
+
184
+ /**
185
+ * Value to represent the height of the Rectangle
186
+ * @private
187
+ * @type int
188
+ */
189
+ Rectangle.prototype.height = 0;
190
+
191
+ /**
192
+ * Get the type of this object.
193
+ * @type String
194
+ */
195
+ Rectangle.prototype.getClassName= function(){
196
+ return "Rectangle";
197
+ }
198
+
199
+ /**
200
+ * Get the value of the width for the Rectangle
201
+ * @type int
202
+ * @see Rectangle#setWidth
203
+ */
204
+ Rectangle.prototype.getWidth = function(){
205
+ return this.width;
206
+ }
207
+
208
+ /**
209
+ * Get the value of the height for the Rectangle.
210
+ * Another getter is the {@link Shape#getColor} method in the
211
+ * {@link Shape} base class.
212
+ * @return The height of this Rectangle
213
+ * @type int
214
+ * @see Rectangle#setHeight
215
+ */
216
+ Rectangle.prototype.getHeight = function(){
217
+ return this.height;
218
+ }
219
+
220
+ /**
221
+ * Set the width value for this Rectangle.
222
+ * @param {int} width The width value to be set
223
+ * @see #setWidth
224
+ */
225
+ Rectangle.prototype.setWidth = function(width){
226
+ this.width = width;
227
+ }
228
+
229
+ /**
230
+ * Set the height value for this Rectangle.
231
+ * @param {int} height The height value to be set
232
+ * @see #getHeight
233
+ */
234
+ Rectangle.prototype.setHeight = function(height){
235
+ this.height = height;
236
+ }
237
+
238
+ /**
239
+ * Get the value for the total area of this Rectangle
240
+ * @return total area of this Rectangle
241
+ * @type int
242
+ */
243
+ Rectangle.prototype.getArea = function(){
244
+ return width * height;
245
+ }
246
+
247
+
248
+ /**
249
+ * Create a new Square instance.
250
+ * @class A Square is a subclass of {@link Rectangle}
251
+ * @param {int} width The optional width for this Rectangle
252
+ * @param {int} height The optional height for this Rectangle
253
+ * @augments Rectangle
254
+ */
255
+ function Square(width, height){
256
+ if (width){
257
+ this.width = width;
258
+ if (height){
259
+ this.height = height;
260
+ }
261
+ }
262
+
263
+ }
264
+
265
+ /* Square is a subclass of Rectangle */
266
+ Square.prototype = new Rectangle();
267
+
268
+ /**
269
+ * Set the width value for this Shape.
270
+ * @param {int} width The width value to be set
271
+ * @see #getWidth
272
+ */
273
+ Square.prototype.setWidth = function(width){
274
+ this.width = this.height = width;
275
+ }
276
+
277
+ /**
278
+ * Set the height value for this Shape
279
+ * Sets the {@link Rectangle#height} attribute in the Rectangle.
280
+ * @param {int} height The height value to be set
281
+ */
282
+ Square.prototype.setHeight = function(height){
283
+ this.height = this.width = height;
284
+ }
285
+
286
+
287
+ /**
288
+ * Create a new Circle instance based on a radius.
289
+ * @class Circle class is another subclass of Shape
290
+ * @extends Shape
291
+ * @param {int} radius The optional radius of this {@link Circle }
292
+ * @mixin Square.prototype.setWidth as this.setDiameter
293
+ */
294
+ function Circle(radius){
295
+ if (radius) {
296
+ /** The radius of the this Circle. */
297
+ this.radius = radius;
298
+ }
299
+ }
300
+
301
+ /* Circle inherits from {@link Shape} */
302
+ Circle.prototype = new Shape();
303
+
304
+ /**
305
+ * The radius value for this Circle
306
+ * @private
307
+ * @type int
308
+ */
309
+ Circle.prototype.radius = 0;
310
+
311
+ /**
312
+ * A very simple class (static) field that is also a constant
313
+ * @final
314
+ * @type float
315
+ */
316
+ Circle.PI = 3.14;
317
+
318
+ /**
319
+ * Get the radius value for this Circle
320
+ * @type int
321
+ * @see #setRadius
322
+ */
323
+ Circle.prototype.getRadius = function(){
324
+ return this.radius;
325
+ }
326
+
327
+ /**
328
+ * Set the radius value for this Circle
329
+ * @param {int} radius The {@link Circle#radius} value to set
330
+ * @see #getRadius
331
+ */
332
+ Circle.prototype.setRadius = function(radius){
333
+ this.radius = radius;
334
+ }
335
+
336
+ /**
337
+ * An example of a class (static) method that acts as a factory for Circle
338
+ * objects. Given a radius value, this method creates a new Circle.
339
+ * @param {int} radius The radius value to use for the new Circle.
340
+ * @type Circle
341
+ */
342
+ Circle.createCircle = function(radius){
343
+ return new Circle(radius);
344
+ }
345
+
346
+
347
+ /**
348
+ * Create a new Coordinate instance based on x and y grid data.
349
+ * @class Coordinate is a class that can encapsulate location information.
350
+ * @param {int} [x=0] The optional x portion of the Coordinate
351
+ * @param {int} [y=0] The optinal y portion of the Coordinate
352
+ */
353
+ function Coordinate(x, y){
354
+ if (x){
355
+ this.x = x;
356
+ if (y){
357
+ this.y = y;
358
+ }
359
+ }
360
+ }
361
+
362
+ /**
363
+ * The x portion of the Coordinate
364
+ * @type int
365
+ * @see #getX
366
+ * @see #setX
367
+ */
368
+ Coordinate.prototype.x = 0;
369
+
370
+ /**
371
+ * The y portion of the Coordinate
372
+ * @type int
373
+ * @see #getY
374
+ * @see #setY
375
+ */
376
+ Coordinate.prototype.y = 0;
377
+
378
+ /**
379
+ * Gets the x portion of the Coordinate.
380
+ * @type int
381
+ * @see #setX
382
+ */
383
+ Coordinate.prototype.getX = function(){
384
+ return this.x;
385
+ }
386
+
387
+ /**
388
+ * Get the y portion of the Coordinate.
389
+ * @type int
390
+ * @see #setY
391
+ */
392
+ Coordinate.prototype.getY = function(){
393
+ return this.y;
394
+ }
395
+
396
+ /**
397
+ * Sets the x portion of the Coordinate.
398
+ * @param {int} x The x value to set
399
+ * @see #getX
400
+ */
401
+ Coordinate.prototype.setX = function(x){
402
+ this.x = x;
403
+ }
404
+
405
+ /**
406
+ * Sets the y portion of the Coordinate.
407
+ * @param {int} y The y value to set
408
+ * @see #getY
409
+ */
410
+ Coordinate.prototype.setY = function(y){
411
+ this.y = y;
412
+ }
413
+
414
+ /**
415
+ * @class This class exists to demonstrate the assignment of a class prototype
416
+ * as an anonymous block.
417
+ */
418
+ function ShapeFactory(){
419
+ }
420
+
421
+ ShapeFactory.prototype = {
422
+ /**
423
+ * Creates a new {@link Shape} instance.
424
+ * @return A new {@link Shape}
425
+ * @type Shape
426
+ */
427
+ createShape: function(){
428
+ return new Shape();
429
+ }
430
+ }
431
+
432
+ /**
433
+ * An example of a singleton class
434
+ * @param ... Arguments represent {@link coordinate}s in the shape.
435
+ * @constructor
436
+ */
437
+ MySingletonShapeFactory = function(){
438
+
439
+ /**
440
+ * Get the next {@link Shape}
441
+ * @type Shape
442
+ * @return A new {@link Shape}
443
+ */
444
+ this.getShape = function(){
445
+ return null;
446
+ }
447
+
448
+ }
449
+
450
+
451
+ /**
452
+ * Create a new Foo instance.
453
+ * @class This is the Foo class. It exists to demonstrate 'nested' classes.
454
+ * @constructor
455
+ * @see Foo.Bar
456
+ */
457
+ function Foo(){}
458
+
459
+ /**
460
+ * Creates a new instance of Bar.
461
+ * @class This class exists to demonstrate 'nested' classes.
462
+ * @constructor
463
+ * @see Foo.Bar
464
+ */
465
+ function Bar(){}
466
+
467
+ /**
468
+ * Nested class
469
+ * @constructor
470
+ */
471
+ Foo.Bar = function(){
472
+ /** The x. */ this.x = 2;
473
+ }
474
+
475
+ Foo.Bar.prototype = new Bar();
476
+ /** The y. */
477
+ Foo.Bar.prototype.y = '3';