xpcomcore-rubygem 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION +1 -1
  3. data/xpcomcore-rubygem.gemspec +144 -2
  4. data/xpcomcore/LICENSE +21 -0
  5. data/xpcomcore/README +27 -0
  6. data/xpcomcore/Rakefile +83 -0
  7. data/xpcomcore/VERSION.yml +5 -0
  8. data/xpcomcore/bin/popen_helper.sh +47 -0
  9. data/xpcomcore/bootstrapper.js +32 -0
  10. data/xpcomcore/components/XPCOMCore.js +122 -0
  11. data/xpcomcore/doc/files.html +275 -0
  12. data/xpcomcore/doc/index.html +275 -0
  13. data/xpcomcore/doc/symbols/Error.html +264 -0
  14. data/xpcomcore/doc/symbols/File.NoSuchFileError.html +334 -0
  15. data/xpcomcore/doc/symbols/File.html +451 -0
  16. data/xpcomcore/doc/symbols/Kernel.html +1098 -0
  17. data/xpcomcore/doc/symbols/LoadError.html +334 -0
  18. data/xpcomcore/doc/symbols/SelfConceptError.html +334 -0
  19. data/xpcomcore/doc/symbols/Sys.html +394 -0
  20. data/xpcomcore/doc/symbols/XPCBuiltins.html +314 -0
  21. data/xpcomcore/doc/symbols/_global_.html +264 -0
  22. data/xpcomcore/doc/symbols/src/lib_file.js.html +82 -0
  23. data/xpcomcore/doc/symbols/src/lib_kernel.js.html +250 -0
  24. data/xpcomcore/doc/symbols/src/lib_sys.js.html +60 -0
  25. data/xpcomcore/doc/symbols/src/lib_xpc_builtins.js.html +20 -0
  26. data/xpcomcore/etc/jsdoc-toolkit/README.txt +186 -0
  27. data/xpcomcore/etc/jsdoc-toolkit/app/frame.js +33 -0
  28. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Chain.js +102 -0
  29. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Dumper.js +144 -0
  30. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Hash.js +84 -0
  31. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Link.js +153 -0
  32. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Namespace.js +10 -0
  33. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Opt.js +134 -0
  34. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Reflection.js +26 -0
  35. data/xpcomcore/etc/jsdoc-toolkit/app/frame/String.js +93 -0
  36. data/xpcomcore/etc/jsdoc-toolkit/app/frame/Testrun.js +129 -0
  37. data/xpcomcore/etc/jsdoc-toolkit/app/handlers/FOODOC.js +26 -0
  38. data/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC.js +26 -0
  39. data/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +159 -0
  40. data/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +16 -0
  41. data/xpcomcore/etc/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +292 -0
  42. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC.js +104 -0
  43. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +200 -0
  44. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +294 -0
  45. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +126 -0
  46. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +109 -0
  47. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Lang.js +144 -0
  48. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Parser.js +145 -0
  49. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +33 -0
  50. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +645 -0
  51. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +241 -0
  52. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +41 -0
  53. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Token.js +18 -0
  54. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +332 -0
  55. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +133 -0
  56. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Util.js +32 -0
  57. data/xpcomcore/etc/jsdoc-toolkit/app/lib/JSDOC/Walker.js +474 -0
  58. data/xpcomcore/etc/jsdoc-toolkit/app/main.js +111 -0
  59. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/commentSrcJson.js +20 -0
  60. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/frameworkPrototype.js +16 -0
  61. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/functionCall.js +10 -0
  62. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/publishSrcHilite.js +62 -0
  63. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/symbolLink.js +10 -0
  64. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/tagParamConfig.js +31 -0
  65. data/xpcomcore/etc/jsdoc-toolkit/app/plugins/tagSynonyms.js +43 -0
  66. data/xpcomcore/etc/jsdoc-toolkit/app/run.js +348 -0
  67. data/xpcomcore/etc/jsdoc-toolkit/app/t/TestDoc.js +144 -0
  68. data/xpcomcore/etc/jsdoc-toolkit/app/t/runner.js +13 -0
  69. data/xpcomcore/etc/jsdoc-toolkit/app/test.js +325 -0
  70. data/xpcomcore/etc/jsdoc-toolkit/app/test/addon.js +24 -0
  71. data/xpcomcore/etc/jsdoc-toolkit/app/test/anon_inner.js +14 -0
  72. data/xpcomcore/etc/jsdoc-toolkit/app/test/augments.js +31 -0
  73. data/xpcomcore/etc/jsdoc-toolkit/app/test/augments2.js +26 -0
  74. data/xpcomcore/etc/jsdoc-toolkit/app/test/borrows.js +46 -0
  75. data/xpcomcore/etc/jsdoc-toolkit/app/test/borrows2.js +23 -0
  76. data/xpcomcore/etc/jsdoc-toolkit/app/test/config.js +22 -0
  77. data/xpcomcore/etc/jsdoc-toolkit/app/test/constructs.js +18 -0
  78. data/xpcomcore/etc/jsdoc-toolkit/app/test/encoding.js +10 -0
  79. data/xpcomcore/etc/jsdoc-toolkit/app/test/encoding_other.js +12 -0
  80. data/xpcomcore/etc/jsdoc-toolkit/app/test/event.js +54 -0
  81. data/xpcomcore/etc/jsdoc-toolkit/app/test/exports.js +14 -0
  82. data/xpcomcore/etc/jsdoc-toolkit/app/test/functions_anon.js +39 -0
  83. data/xpcomcore/etc/jsdoc-toolkit/app/test/functions_nested.js +33 -0
  84. data/xpcomcore/etc/jsdoc-toolkit/app/test/global.js +13 -0
  85. data/xpcomcore/etc/jsdoc-toolkit/app/test/globals.js +25 -0
  86. data/xpcomcore/etc/jsdoc-toolkit/app/test/ignore.js +10 -0
  87. data/xpcomcore/etc/jsdoc-toolkit/app/test/inner.js +16 -0
  88. data/xpcomcore/etc/jsdoc-toolkit/app/test/jsdoc_test.js +477 -0
  89. data/xpcomcore/etc/jsdoc-toolkit/app/test/lend.js +33 -0
  90. data/xpcomcore/etc/jsdoc-toolkit/app/test/memberof.js +19 -0
  91. data/xpcomcore/etc/jsdoc-toolkit/app/test/memberof_constructor.js +17 -0
  92. data/xpcomcore/etc/jsdoc-toolkit/app/test/module.js +17 -0
  93. data/xpcomcore/etc/jsdoc-toolkit/app/test/name.js +19 -0
  94. data/xpcomcore/etc/jsdoc-toolkit/app/test/namespace_nested.js +23 -0
  95. data/xpcomcore/etc/jsdoc-toolkit/app/test/nocode.js +13 -0
  96. data/xpcomcore/etc/jsdoc-toolkit/app/test/oblit_anon.js +20 -0
  97. data/xpcomcore/etc/jsdoc-toolkit/app/test/overview.js +20 -0
  98. data/xpcomcore/etc/jsdoc-toolkit/app/test/param_inline.js +37 -0
  99. data/xpcomcore/etc/jsdoc-toolkit/app/test/params_optional.js +8 -0
  100. data/xpcomcore/etc/jsdoc-toolkit/app/test/prototype.js +17 -0
  101. data/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_nested.js +9 -0
  102. data/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_oblit.js +13 -0
  103. data/xpcomcore/etc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +24 -0
  104. data/xpcomcore/etc/jsdoc-toolkit/app/test/public.js +10 -0
  105. data/xpcomcore/etc/jsdoc-toolkit/app/test/scripts/code.js +5 -0
  106. data/xpcomcore/etc/jsdoc-toolkit/app/test/scripts/notcode.txt +5 -0
  107. data/xpcomcore/etc/jsdoc-toolkit/app/test/shared.js +42 -0
  108. data/xpcomcore/etc/jsdoc-toolkit/app/test/shared2.js +2 -0
  109. data/xpcomcore/etc/jsdoc-toolkit/app/test/shortcuts.js +22 -0
  110. data/xpcomcore/etc/jsdoc-toolkit/app/test/static_this.js +13 -0
  111. data/xpcomcore/etc/jsdoc-toolkit/app/test/synonyms.js +31 -0
  112. data/xpcomcore/etc/jsdoc-toolkit/app/test/tosource.js +23 -0
  113. data/xpcomcore/etc/jsdoc-toolkit/app/test/variable_redefine.js +14 -0
  114. data/xpcomcore/etc/jsdoc-toolkit/changes.txt +96 -0
  115. data/xpcomcore/etc/jsdoc-toolkit/conf/sample.conf +31 -0
  116. data/xpcomcore/etc/jsdoc-toolkit/java/build.xml +36 -0
  117. data/xpcomcore/etc/jsdoc-toolkit/java/build_1.4.xml +36 -0
  118. data/xpcomcore/etc/jsdoc-toolkit/java/classes/js.jar +0 -0
  119. data/xpcomcore/etc/jsdoc-toolkit/java/src/JsDebugRun.java +21 -0
  120. data/xpcomcore/etc/jsdoc-toolkit/java/src/JsRun.java +21 -0
  121. data/xpcomcore/etc/jsdoc-toolkit/jsdebug.jar +0 -0
  122. data/xpcomcore/etc/jsdoc-toolkit/jsrun.jar +0 -0
  123. data/xpcomcore/etc/jsdoc-toolkit/jsrun.sh +52 -0
  124. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl +17 -0
  125. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl +56 -0
  126. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/class.tmpl +646 -0
  127. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/index.tmpl +39 -0
  128. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/publish.js +200 -0
  129. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/default.css +162 -0
  130. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/header.html +2 -0
  131. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/static/index.html +19 -0
  132. data/xpcomcore/etc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl +35 -0
  133. data/xpcomcore/lib/file.js +75 -0
  134. data/xpcomcore/lib/kernel.js +243 -0
  135. data/xpcomcore/lib/sys.js +52 -0
  136. data/xpcomcore/lib/xpc_builtins.js +13 -0
  137. data/xpcomcore/test/file_test.js +27 -0
  138. data/xpcomcore/test/fixtures/empty +0 -0
  139. data/xpcomcore/test/fixtures/love.js +1 -0
  140. data/xpcomcore/test/fixtures/mad_love.js +1 -0
  141. data/xpcomcore/test/fixtures/mad_world.js +1 -0
  142. data/xpcomcore/test/fixtures/syntax_error.js +1 -0
  143. data/xpcomcore/test/kernel_test.js +95 -0
  144. data/xpcomcore/test/sys_test.js +19 -0
  145. data/xpcomcore/test/xpc_builtins_test.js +8 -0
  146. metadata +143 -1
@@ -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';