001 
002 /*
003  *  JScripter Standard 1.0 - To Script In Java
004  *  Copyright (C) 2008-2011  J.J.Liu<jianjunliu@126.com> <http://www.jscripter.org>
005  *  
006  *  This program is free software: you can redistribute it and/or modify
007  *  it under the terms of the GNU Affero General Public License as published by
008  *  the Free Software Foundation, either version 3 of the License, or
009  *  (at your option) any later version.
010  *  
011  *  This program is distributed in the hope that it will be useful,
012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014  *  GNU Affero General Public License for more details.
015  *  
016  *  You should have received a copy of the GNU Affero General Public License
017  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
018  */
019 
020 package js.user;
021 
022 import js.*;
023 import js.core.*;
024 
025 /**
026  * <p>An <b>opaque</b> class representing JavaScript client-side objects of the global 
027  * {@link JsClient#HTMLObjectElement} class.</p>
028  * <p>This class represents a generic embedded object 
029  * in an HTML page, or a {@link JsHTMLElement} object created with the HTML 
030  * <tt>&lt;object&gt;</tt> tag.</p>
031  *
032  * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
033  * @see JsHTMLAppletElement
034  * @see JsHTMLImageElement
035  *
036  * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be
037  * generated into the target codes. Re-compilers must exit with error on the operations of
038  * accessing that kind of class objects.
039  * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored
040  * and <tt>instanceof</tt> to it always <tt>true</tt>.
041  */
042 public class JsHTMLObjectElement extends JsClient.HTMLObjectElement.Prototype
043 {
044     /**
045      * <p>An <b>internal</b> class containing membership data for its enclosing
046      * opaque class.</p>
047      * <p>This class is only used inside of <b>opaque</b> or <b>internal</b> classes or
048      * class members.</p>
049      *
050      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
051      * 
052      * @javascript Re-compilers must report error on resolving an <b>internal</b> class.
053      */
054     protected static abstract class Members extends JsClient.HTMLObjectElement.Prototype.Members
055     {
056         /**
057          * <p>An <b>internal</b> static field defining a member ID of the field name and
058          * used internally to define a member of the same name.</p>
059          * @since 1.0
060          * @see JsHTMLObjectElement#form
061          * @see JsHTMLObjectElement.Member#form
062          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
063          */
064         public final static Mid form            = id("form"          );
065         /**
066          * <p>An <b>internal</b> static field defining a member ID of the field name and
067          * used internally to define a member of the same name.</p>
068          * @since 1.0
069          * @see JsHTMLObjectElement#code
070          * @see JsHTMLObjectElement.Member#code
071          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
072          */
073         public final static Mid code            = id("code"           );
074         /**
075          * <p>An <b>internal</b> static field defining a member ID of the field name and
076          * used internally to define a member of the same name.</p>
077          * @since 1.0
078          * @see JsHTMLObjectElement#align
079          * @see JsHTMLObjectElement.Member#align
080          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
081          */
082         public final static Mid align           = id("align"          );
083         /**
084          * <p>An <b>internal</b> static field defining a member ID of the field name and
085          * used internally to define a member of the same name.</p>
086          * @since 1.0
087          * @see JsHTMLObjectElement#archive
088          * @see JsHTMLObjectElement.Member#archive
089          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
090          */
091         public final static Mid archive         = id("archive"        );
092         /**
093          * <p>An <b>internal</b> static field defining a member ID of the field name and
094          * used internally to define a member of the same name.</p>
095          * @since 1.0
096          * @see JsHTMLObjectElement#border
097          * @see JsHTMLObjectElement.Member#border
098          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
099          */
100         public final static Mid border          = id("border"         );
101         /**
102          * <p>An <b>internal</b> static field defining a member ID of the field name and
103          * used internally to define a member of the same name.</p>
104          * @since 1.0
105          * @see JsHTMLObjectElement#codeBase
106          * @see JsHTMLObjectElement.Member#codeBase
107          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
108          */
109         public final static Mid codeBase        = id("codeBase"       );
110         /**
111          * <p>An <b>internal</b> static field defining a member ID of the field name and
112          * used internally to define a member of the same name.</p>
113          * @since 1.0
114          * @see JsHTMLObjectElement#codeType
115          * @see JsHTMLObjectElement.Member#codeType
116          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
117          */
118         public final static Mid codeType        = id("codeType"       );
119         /**
120          * <p>An <b>internal</b> static field defining a member ID of the field name and
121          * used internally to define a member of the same name.</p>
122          * @since 1.0
123          * @see JsHTMLObjectElement#data
124          * @see JsHTMLObjectElement.Member#data
125          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
126          */
127         public final static Mid data            = id("data"           );
128         /**
129          * <p>An <b>internal</b> static field defining a member ID of the field name and
130          * used internally to define a member of the same name.</p>
131          * @since 1.0
132          * @see JsHTMLObjectElement#declare
133          * @see JsHTMLObjectElement.Member#declare
134          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
135          */
136         public final static Mid declare         = id("declare"        );
137         /**
138          * <p>An <b>internal</b> static field defining a member ID of the field name and
139          * used internally to define a member of the same name.</p>
140          * @since 1.0
141          * @see JsHTMLObjectElement#height
142          * @see JsHTMLObjectElement.Member#height
143          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
144          */
145         public final static Mid height          = id("height"         );
146         /**
147          * <p>An <b>internal</b> static field defining a member ID of the field name and
148          * used internally to define a member of the same name.</p>
149          * @since 1.0
150          * @see JsHTMLObjectElement#hspace
151          * @see JsHTMLObjectElement.Member#hspace
152          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
153          */
154         public final static Mid hspace          = id("hspace"         );
155         /**
156          * <p>An <b>internal</b> static field defining a member ID of the field name and
157          * used internally to define a member of the same name.</p>
158          * @since 1.0
159          * @see JsHTMLObjectElement#name
160          * @see JsHTMLObjectElement.Member#name
161          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
162          */
163         public final static Mid name            = id("name"           );
164         /**
165          * <p>An <b>internal</b> static field defining a member ID of the field name and
166          * used internally to define a member of the same name.</p>
167          * @since 1.0
168          * @see JsHTMLObjectElement#standby
169          * @see JsHTMLObjectElement.Member#standby
170          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
171          */
172         public final static Mid standby         = id("standby"        );
173         /**
174          * <p>An <b>internal</b> static field defining a member ID of the field name and
175          * used internally to define a member of the same name.</p>
176          * @since 1.0
177          * @see JsHTMLObjectElement#tabIndex
178          * @see JsHTMLObjectElement.Member#tabIndex
179          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
180          */
181         public final static Mid tabIndex        = id("tabIndex"       );
182         /**
183          * <p>An <b>internal</b> static field defining a member ID of the field name and
184          * used internally to define a member of the same name.</p>
185          * @since 1.0
186          * @see JsHTMLObjectElement#type
187          * @see JsHTMLObjectElement.Member#type
188          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
189          */
190         public final static Mid type            = id("type"           );
191         /**
192          * <p>An <b>internal</b> static field defining a member ID of the field name and
193          * used internally to define a member of the same name.</p>
194          * @since 1.0
195          * @see JsHTMLObjectElement#useMap
196          * @see JsHTMLObjectElement.Member#useMap
197          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
198          */
199         public final static Mid useMap          = id("useMap"         );
200         /**
201          * <p>An <b>internal</b> static field defining a member ID of the field name and
202          * used internally to define a member of the same name.</p>
203          * @since 1.0
204          * @see JsHTMLObjectElement#vspace
205          * @see JsHTMLObjectElement.Member#vspace
206          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
207          */
208         public final static Mid vspace          = id("vspace"         );
209         /**
210          * <p>An <b>internal</b> static field defining a member ID of the field name and
211          * used internally to define a member of the same name.</p>
212          * @since 1.0
213          * @see JsHTMLObjectElement#width
214          * @see JsHTMLObjectElement.Member#width
215          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
216          */
217         public final static Mid width           = id("width"          );
218         /**
219          * <p>An <b>internal</b> static field defining a member ID of the field name and
220          * used internally to define a member of the same name.</p>
221          * @since 1.0
222          * @see JsHTMLObjectElement#contentDocument
223          * @see JsHTMLObjectElement.Member#contentDocument
224          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
225          */
226         public final static Mid contentDocument = id("contentDocument");
227     }
228     /**
229      * <p>An <b>opaque</b> class representing members of its enclosing <b>opaque</b> type.</p>
230      * <p>Note that, this class is <b>opaque</b> but its constructors are all <b>internal</b>. 
231      * This class and the subclasses of this class are used to declare either <b>opaque</b> 
232      * <tt>public</tt> instance fields of the opaque type {@link js.Var.Member} or the 
233      * <b>opaque</b> <tt>public</tt> static fields of other <b>opaque</b> types while their 
234      * constructors are used to define the fields inside <b>opaque</b> classes. Under 
235      * either circumstance, the field names must be exactly same as the member names, as 
236      * the <b>opaque</b> fields of <b>opaque</b> types are resolved by re-compilers directly 
237      * based on the field names.</p>
238      *
239      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
240      * 
241      * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be created
242      * in the target codes. Re-compilers must exit with error on operations accessing that kind 
243      * of class objects.
244      * Re-compilers must resolve an <b>opaque</b> instance field declared by this class in
245      * {@link js.Var.Member} or its subclasses to the JavaScript identifier: 
246      * <pre>q.m</pre>
247      * where <tt>m</tt> is the identifier of the field name and <tt>q</tt> is the identifier
248      * resolved from the instance of the enclosing member. Re-compilers must resolve an 
249      * <b>opaque</b> static field declared by this class in <b>opaque</b> types other than 
250      * {@link js.Var.Member} and its subclasses to the JavaScript identifier: 
251      * <pre>m</pre>
252      * where <tt>m</tt> is the identifier of the field name. And re-compilers must report
253      * error on the access to <b>opaque</b> fields declared by this class under any other 
254      * circumstances.
255      */
256     public static class Member extends JsClient.HTMLObjectElement.Prototype.Member
257     {
258         /**
259          * <p>Internally constructs a member based on a qualifying member.</p>
260          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
261          * or <b>internal</b> classes or class members.</p>
262          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
263          * <b>opaque</b>. This constructor is used to define <b>opaque</b> instance fields 
264          * declared in the declaring class of this constructor itself or its subclasses. 
265          * Under this circumstance, the field names must be exactly same as the member 
266          * names, as the <b>opaque</b> instance fields of the <b>opaque</b> type 
267          * {@link js.Var.Member} or its subclasses are resolved by re-compilers directly
268          * to their names appending to the name resolved from the specified qualifying 
269          * member with a dot in between.</p>
270          * @param q A qualifying member
271          * @param mid The ID of the member to construct
272          * @since 1.0
273          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
274          */
275         public Member(JsObject.Member q, Mid mid) {
276             super(q, mid);
277         }
278         /**
279          * <p>Internally constructs a member without a qualifying member.</p>
280          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
281          * or <b>internal</b> classes or class members.</p>
282          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
283          * <b>opaque</b>. This constructor is used to define <b>opaque</b> static fields, 
284          * declared in <b>opaque</b> types other than the declaring class of this constructor 
285          * itself and its subclasses. Under this circumstance, the field names must be
286          * exactly same as the member names, as the <b>opaque</b> static fields of <b>opaque</b>
287          * types are generally resolved by re-compilers directly to identifiers of their names.</p>
288          * @param mid The ID of the member to construct
289          * @since 1.0
290          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
291          */
292         public Member(Mid mid) {
293             super(mid);
294         }
295         @Override
296         /**
297          * <p>Evaluates the property, represented by the current member instance, of the
298          * argument object.</p>
299          * @param o The argument object
300          * @return The value of the current member based on the object argument.
301          * @since 1.0
302          * @javascript Re-compilers must convert the instance invocation of this method into
303          * the JavaScript expression: 
304          * <pre>o.m</pre>
305          * where <tt>m</tt> is the identifier name resolved from the current member
306          * instance of the invocation.
307          */
308         public JsHTMLObjectElement with(ObjectLike o) {
309             return new JsHTMLObjectElement(super.with(o));
310         }
311 
312         /**
313          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
314          * name of this field, qualified by the current member instance of the field, and 
315          * to access the property of the name on an object.</p>
316          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
317          * object is a read-only reference to the {@link JsHTMLFormElement} object 
318          * containing the object. It is <tt>null</tt> if the object is not within the 
319          * context of a form.</p>
320          * @since 1.0
321          * @javascript Re-compilers must resolve the member of this instance field to the
322          * identifier of the field name appending to the identifier resolved from its 
323          * qualifying member with a dot in between.
324          */
325         public final JsHTMLFormElement.Member form = new JsHTMLFormElement.Member(this, Members.form);
326         /**
327          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
328          * name of this field, qualified by the current member instance of the field, and 
329          * to access the property of the name on an object.</p>
330          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
331          * object refers to a string specifying either the name of the applet class or 
332          * the path to get the class. It is interpreted with respect to the applet's 
333          * <tt>codebase</tt> attribute or the {@link #codeBase} property of this object.</p>
334          * @since 1.0
335          * @see JsHTMLAppletElement#code
336          * @javascript Re-compilers must resolve the member of this instance field to the
337          * identifier of the field name appending to the identifier resolved from its 
338          * qualifying member with a dot in between.
339          */
340         public final Value.String.Member code     = new Value.String.Member(this, Members.code    );
341         /**
342          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
343          * name of this field, qualified by the current member instance of the field, and 
344          * to access the property of the name on an object.</p>
345          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
346          * object refers to a string specifying the horizontal alignment of the element 
347          * with respect to the surrounding context. Possible values are:
348          * <ul>
349          * <li><tt>"left"</tt>: text lines are rendered flush left.</li>
350          * <li><tt>"center"</tt>: text lines are centered.</li>
351          * <li><tt>"right"</tt>: text lines are rendered flush right.</li>
352          * <li><tt>"justify"</tt>: text lines are justified to both margins.</li>
353          * </ul>
354          * The default value of this attribute depends on the base text direction. 
355          * For left to right text, the default is "left", while for right to left text, 
356          * it is "right".</p>
357          * <p>This attribute is deprecated by HTML 4.01 and should be handled with style sheets.</p> 
358          * @since 1.0
359          * @javascript Re-compilers must resolve the member of this instance field to the
360          * identifier of the field name appending to the identifier resolved from its 
361          * qualifying member with a dot in between.
362          */
363         public final Value.String.Member align    = new Value.String.Member(this, Members.align   );
364         /**
365          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
366          * name of this field, qualified by the current member instance of the field, and 
367          * to access the property of the name on an object.</p>
368          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
369          * object refers to a string specifying a comma-separated list of URIs for archives 
370          * containing java classes and other resources that will be preloaded by the web 
371          * browser.</p>
372          * @since 1.0
373          * @see JsHTMLAppletElement#archive
374          * @javascript Re-compilers must resolve the member of this instance field to the
375          * identifier of the field name appending to the identifier resolved from its 
376          * qualifying member with a dot in between.
377          */
378         public final Value.String.Member archive  = new Value.String.Member(this, Members.archive );
379         /**
380          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
381          * name of this field, qualified by the current member instance of the field, and 
382          * to access the property of the name on an object.</p>
383          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
384          * object refers to a string specifying the border width of this element, in 
385          * pixels. The default value for this attribute depends on the web browser.</p>
386          * <p>This attribute is deprecated by HTML 4.01 and should be handled by style sheets.</p> 
387          * @since 1.0
388          * @javascript Re-compilers must resolve the member of this instance field to the
389          * identifier of the field name appending to the identifier resolved from its 
390          * qualifying member with a dot in between.
391          */
392         public final Value.String.Member border   = new Value.String.Member(this, Members.border  );
393         /**
394          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
395          * name of this field, qualified by the current member instance of the field, and 
396          * to access the property of the name on an object.</p>
397          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
398          * object refers to a string optionally specifying the base URI for the applet. 
399          * If this attribute is not specified, then it defaults the same base URI as 
400          * for the current document. Values for this attribute may only refer to 
401          * subdirectories of the directory containing the current document.</p>
402          * @since 1.0
403          * @see JsHTMLAppletElement#codeBase
404          * @javascript Re-compilers must resolve the member of this instance field to the
405          * identifier of the field name appending to the identifier resolved from its 
406          * qualifying member with a dot in between.
407          */
408         public final Value.String.Member codeBase = new Value.String.Member(this, Members.codeBase);
409         /**
410          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
411          * name of this field, qualified by the current member instance of the field, and 
412          * to access the property of the name on an object.</p>
413          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
414          * object refers to a string specifying the content type for data downloaded via 
415          * <tt>classid</tt> attribute.</p>
416          * @since 1.0
417          * @javascript Re-compilers must resolve the member of this instance field to the
418          * identifier of the field name appending to the identifier resolved from its 
419          * qualifying member with a dot in between.
420          */
421         public final Value.String.Member codeType = new Value.String.Member(this, Members.codeType);
422         /**
423          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
424          * name of this field, qualified by the current member instance of the field, and 
425          * to access the property of the name on an object.</p>
426          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
427          * object refers to a URI string specifying the location of the object's data.</p>
428          * @since 1.0
429          * @javascript Re-compilers must resolve the member of this instance field to the
430          * identifier of the field name appending to the identifier resolved from its 
431          * qualifying member with a dot in between.
432          */
433         public final Value.String.Member data     = new Value.String.Member(this, Members.data    );
434         /**
435          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
436          * name of this field, qualified by the current member instance of the field, and 
437          * to access the property of the name on an object.</p>
438          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
439          * object refers to a string specifying the initial height of the object's display 
440          * area.</p>
441          * @since 1.0
442          * @javascript Re-compilers must resolve the member of this instance field to the
443          * identifier of the field name appending to the identifier resolved from its 
444          * qualifying member with a dot in between.
445          */
446         public final Value.String.Member height   = new Value.String.Member(this, Members.height  );
447         /**
448          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
449          * name of this field, qualified by the current member instance of the field, and 
450          * to access the property of the name on an object.</p>
451          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
452          * object refers to a number specifying the amount of white space to be inserted 
453          * to the left and right of this object. The default value is not specified, but 
454          * is generally a small, non-zero length.</p>
455          * @since 1.0
456          * @javascript Re-compilers must resolve the member of this instance field to the
457          * identifier of the field name appending to the identifier resolved from its 
458          * qualifying member with a dot in between.
459          */
460         public final Value.String.Member hspace   = new Value.String.Member(this, Members.hspace  );
461         /**
462          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
463          * name of this field, qualified by the current member instance of the field, and 
464          * to access the property of the name on an object.</p>
465          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
466          * object refers to a string that names the current object for backwards compatibility. 
467          * Applications should use the {@link JsHTMLElement#id} attribute to identify 
468          * elements.</p> 
469          * @since 1.0
470          * @javascript Re-compilers must resolve the member of this instance field to the
471          * identifier of the field name appending to the identifier resolved from its 
472          * qualifying member with a dot in between.
473          */
474         public final Value.String.Member name     = new Value.String.Member(this, Members.name    );
475         /**
476          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
477          * name of this field, qualified by the current member instance of the field, and 
478          * to access the property of the name on an object.</p>
479          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
480          * object refers to a string designating message to render while loading the 
481          * object.</p> 
482          * @since 1.0
483          * @javascript Re-compilers must resolve the member of this instance field to the
484          * identifier of the field name appending to the identifier resolved from its 
485          * qualifying member with a dot in between.
486          */
487         public final Value.String.Member standby  = new Value.String.Member(this, Members.standby );
488         /**
489          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
490          * name of this field, qualified by the current member instance of the field, and 
491          * to access the property of the name on an object.</p>
492          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
493          * object refers to an index number representing the element's position in the 
494          * tabbing order.</p>
495          * @since 1.0
496          * @javascript Re-compilers must resolve the member of this instance field to the
497          * identifier of the field name appending to the identifier resolved from its 
498          * qualifying member with a dot in between.
499          */
500         public final Value.Number.Member tabIndex = new Value.Number.Member(this, Members.tabIndex);
501         /**
502          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
503          * name of this field, qualified by the current member instance of the field, and 
504          * to access the property of the name on an object.</p>
505          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
506          * object refers to a string specifying the content type for data downloaded via 
507          * {@link #data} attribute.</p>
508          * @since 1.0
509          * @javascript Re-compilers must resolve the member of this instance field to the
510          * identifier of the field name appending to the identifier resolved from its 
511          * qualifying member with a dot in between.
512          */
513         public final Value.String.Member type     = new Value.String.Member(this, Members.type    );
514         /**
515          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
516          * name of this field, qualified by the current member instance of the field, and 
517          * to access the property of the name on an object.</p>
518          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
519          * object refers to a string specifying a client-side image map for this image.</p> 
520          * @since 1.0
521          * @see JsHTMLImageElement#useMap
522          * @javascript Re-compilers must resolve the member of this instance field to the
523          * identifier of the field name appending to the identifier resolved from its 
524          * qualifying member with a dot in between.
525          */
526         public final Value.String.Member useMap   = new Value.String.Member(this, Members.useMap  );
527         /**
528          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
529          * name of this field, qualified by the current member instance of the field, and 
530          * to access the property of the name on an object.</p>
531          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
532          * object refers to a number specifying the amount of white space to be inserted 
533          * above and below this object. The default value is not specified, but is 
534          * generally a small, non-zero length.</p>
535          * @since 1.0
536          * @javascript Re-compilers must resolve the member of this instance field to the
537          * identifier of the field name appending to the identifier resolved from its 
538          * qualifying member with a dot in between.
539          */
540         public final Value.String.Member vspace   = new Value.String.Member(this, Members.vspace  );
541         /**
542          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
543          * name of this field, qualified by the current member instance of the field, and 
544          * to access the property of the name on an object.</p>
545          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
546          * object refers to a string specifying the initial width of the object's display 
547          * area.</p>
548          * @since 1.0
549          * @javascript Re-compilers must resolve the member of this instance field to the
550          * identifier of the field name appending to the identifier resolved from its 
551          * qualifying member with a dot in between.
552          */
553         public final Value.String.Member width    = new Value.String.Member(this, Members.width   );
554         /**
555          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
556          * name of this field, qualified by the current member instance of the field, and 
557          * to access the property of the name on an object.</p>
558          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
559          * object refers to a boolean value specifying whether to only declare this 
560          * object for future reference, but do not instantiate it.</p>
561          * @since 1.0
562          * @javascript Re-compilers must resolve the member of this instance field to the
563          * identifier of the field name appending to the identifier resolved from its 
564          * qualifying member with a dot in between.
565          */
566         public final Value.Boolean.Member declare = new Value.Boolean.Member(this, Members.declare);
567         /**
568          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
569          * name of this field, qualified by the current member instance of the field, and 
570          * to access the property of the name on an object.</p>
571          * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
572          * object is a read-only reference to the {@link JsDocument} object this object 
573          * contains, if there is any and it is available, or <tt>null</tt> otherwise.</p>
574          * @since 1.0
575          * @javascript Re-compilers must resolve the member of this instance field to the
576          * identifier of the field name appending to the identifier resolved from its 
577          * qualifying member with a dot in between.
578          */
579         public final JsHTMLDocument.Member contentDocument = new JsHTMLDocument.Member(this, Members.contentDocument);
580     }
581 
582     /**
583      * <p>Casts an <b>opaque</b> object to the current <b>opaque</b> type by wrapping it
584      * with the wrapping constructor.</p>
585      * @param var The argument of an <b>opaque</b> object.
586      * @since 1.0
587      * @javascript Re-compilers must ignore the construction operation of this constructor,
588      * that is, replacing it with its only argument.
589      */
590     public JsHTMLObjectElement(JsObject var) {
591         super(var);
592     }
593 
594     /**
595      * <p>An <b>opaque</b> static field defining a member that is named by the field name
596      * without a qualifying member and to access the property of the name on an object.</p>
597      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
598      * object is a read-only reference to the {@link JsHTMLFormElement} object 
599      * containing the object. It is <tt>null</tt> if the object is not within the 
600      * context of a form.</p>
601      * @since 1.0
602      * @javascript Re-compilers must resolve the member of this static field to the
603      * identifier of the field name.
604      */
605     public static final JsHTMLFormElement.Member form = new JsHTMLFormElement.Member(Members.form);
606     /**
607      * <p>An <b>opaque</b> static field defining a member that is named by the field name
608      * without a qualifying member and to access the property of the name on an object.</p>
609      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
610      * object refers to a string specifying either the name of the applet class or 
611      * the path to get the class. It is interpreted with respect to the applet's 
612      * <tt>codebase</tt> attribute or the {@link #codeBase} property of this object.</p>
613      * @since 1.0
614      * @see JsHTMLAppletElement#code
615      * @javascript Re-compilers must resolve the member of this static field to the
616      * identifier of the field name.
617      */
618     public static final Value.String.Member code     = new Value.String.Member(Members.code    );
619     /**
620      * <p>An <b>opaque</b> static field defining a member that is named by the field name
621      * without a qualifying member and to access the property of the name on an object.</p>
622      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
623      * object refers to a string specifying the horizontal alignment of the element 
624      * with respect to the surrounding context. Possible values are:
625      * <ul>
626      * <li><tt>"left"</tt>: text lines are rendered flush left.</li>
627      * <li><tt>"center"</tt>: text lines are centered.</li>
628      * <li><tt>"right"</tt>: text lines are rendered flush right.</li>
629      * <li><tt>"justify"</tt>: text lines are justified to both margins.</li>
630      * </ul>
631      * The default value of this attribute depends on the base text direction. 
632      * For left to right text, the default is "left", while for right to left text, 
633      * it is "right".</p>
634      * <p>This attribute is deprecated by HTML 4.01 and should be handled with style sheets.</p> 
635      * @since 1.0
636      * @javascript Re-compilers must resolve the member of this static field to the
637      * identifier of the field name.
638      */
639     public static final Value.String.Member align    = new Value.String.Member(Members.align   );
640     /**
641      * <p>An <b>opaque</b> static field defining a member that is named by the field name
642      * without a qualifying member and to access the property of the name on an object.</p>
643      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
644      * object refers to a string specifying a comma-separated list of URIs for archives 
645      * containing java classes and other resources that will be preloaded by the web 
646      * browser.</p>
647      * @since 1.0
648      * @see JsHTMLAppletElement#archive
649      * @javascript Re-compilers must resolve the member of this static field to the
650      * identifier of the field name.
651      */
652     public static final Value.String.Member archive  = new Value.String.Member(Members.archive );
653     /**
654      * <p>An <b>opaque</b> static field defining a member that is named by the field name
655      * without a qualifying member and to access the property of the name on an object.</p>
656      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
657      * object refers to a string specifying the border width of this element, in 
658      * pixels. The default value for this attribute depends on the web browser.</p>
659      * <p>This attribute is deprecated by HTML 4.01 and should be handled by style sheets.</p> 
660      * @since 1.0
661      * @javascript Re-compilers must resolve the member of this static field to the
662      * identifier of the field name.
663      */
664     public static final Value.String.Member border   = new Value.String.Member(Members.border  );
665     /**
666      * <p>An <b>opaque</b> static field defining a member that is named by the field name
667      * without a qualifying member and to access the property of the name on an object.</p>
668      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
669      * object refers to a string optionally specifying the base URI for the applet. 
670      * If this attribute is not specified, then it defaults the same base URI as 
671      * for the current document. Values for this attribute may only refer to 
672      * subdirectories of the directory containing the current document.</p>
673      * @since 1.0
674      * @see JsHTMLAppletElement#codeBase
675      * @javascript Re-compilers must resolve the member of this static field to the
676      * identifier of the field name.
677      */
678     public static final Value.String.Member codeBase = new Value.String.Member(Members.codeBase);
679     /**
680      * <p>An <b>opaque</b> static field defining a member that is named by the field name
681      * without a qualifying member and to access the property of the name on an object.</p>
682      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
683      * object refers to a string specifying the content type for data downloaded via 
684      * <tt>classid</tt> attribute.</p>
685      * @since 1.0
686      * @javascript Re-compilers must resolve the member of this static field to the
687      * identifier of the field name.
688      */
689     public static final Value.String.Member codeType = new Value.String.Member(Members.codeType);
690     /**
691      * <p>An <b>opaque</b> static field defining a member that is named by the field name
692      * without a qualifying member and to access the property of the name on an object.</p>
693      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
694      * object refers to a URI string specifying the location of the object's data.</p>
695      * @since 1.0
696      * @javascript Re-compilers must resolve the member of this static field to the
697      * identifier of the field name.
698      */
699     public static final Value.String.Member data     = new Value.String.Member(Members.data    );
700     /**
701      * <p>An <b>opaque</b> static field defining a member that is named by the field name
702      * without a qualifying member and to access the property of the name on an object.</p>
703      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
704      * object refers to a string specifying the initial height of the object's display 
705      * area.</p>
706      * @since 1.0
707      * @javascript Re-compilers must resolve the member of this static field to the
708      * identifier of the field name.
709      */
710     public static final Value.String.Member height   = new Value.String.Member(Members.height  );
711     /**
712      * <p>An <b>opaque</b> static field defining a member that is named by the field name
713      * without a qualifying member and to access the property of the name on an object.</p>
714      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
715      * object refers to a number specifying the amount of white space to be inserted 
716      * to the left and right of this object. The default value is not specified, but 
717      * is generally a small, non-zero length.</p>
718      * @since 1.0
719      * @javascript Re-compilers must resolve the member of this static field to the
720      * identifier of the field name.
721      */
722     public static final Value.String.Member hspace   = new Value.String.Member(Members.hspace  );
723     /**
724      * <p>An <b>opaque</b> static field defining a member that is named by the field name
725      * without a qualifying member and to access the property of the name on an object.</p>
726      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
727      * object refers to a string that names the current object for backwards compatibility. 
728      * Applications should use the {@link JsHTMLElement#id} attribute to identify 
729      * elements.</p> 
730      * @since 1.0
731      * @javascript Re-compilers must resolve the member of this static field to the
732      * identifier of the field name.
733      */
734     public static final Value.String.Member name     = new Value.String.Member(Members.name    );
735     /**
736      * <p>An <b>opaque</b> static field defining a member that is named by the field name
737      * without a qualifying member and to access the property of the name on an object.</p>
738      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
739      * object refers to a string designating message to render while loading the 
740      * object.</p> 
741      * @since 1.0
742      * @javascript Re-compilers must resolve the member of this static field to the
743      * identifier of the field name.
744      */
745     public static final Value.String.Member standby  = new Value.String.Member(Members.standby );
746     /**
747      * <p>An <b>opaque</b> static field defining a member that is named by the field name
748      * without a qualifying member and to access the property of the name on an object.</p>
749      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
750      * object refers to an index number representing the element's position in the 
751      * tabbing order.</p>
752      * @since 1.0
753      * @javascript Re-compilers must resolve the member of this static field to the
754      * identifier of the field name.
755      */
756     public static final Value.Number.Member tabIndex = new Value.Number.Member(Members.tabIndex);
757     /**
758      * <p>An <b>opaque</b> static field defining a member that is named by the field name
759      * without a qualifying member and to access the property of the name on an object.</p>
760      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
761      * object refers to a string specifying the content type for data downloaded via 
762      * {@link #data} attribute.</p>
763      * @since 1.0
764      * @javascript Re-compilers must resolve the member of this static field to the
765      * identifier of the field name.
766      */
767     public static final Value.String.Member type     = new Value.String.Member(Members.type    );
768     /**
769      * <p>An <b>opaque</b> static field defining a member that is named by the field name
770      * without a qualifying member and to access the property of the name on an object.</p>
771      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
772      * object refers to a string specifying a client-side image map for this image.</p> 
773      * @since 1.0
774      * @javascript Re-compilers must resolve the member of this static field to the
775      * identifier of the field name.
776      */
777     public static final Value.String.Member useMap   = new Value.String.Member(Members.useMap  );
778     /**
779      * <p>An <b>opaque</b> static field defining a member that is named by the field name
780      * without a qualifying member and to access the property of the name on an object.</p>
781      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
782      * object refers to a number specifying the amount of white space to be inserted 
783      * above and below this object. The default value is not specified, but is 
784      * generally a small, non-zero length.</p>
785      * @since 1.0
786      * @javascript Re-compilers must resolve the member of this static field to the
787      * identifier of the field name.
788      */
789     public static final Value.String.Member vspace   = new Value.String.Member(Members.vspace  );
790     /**
791      * <p>An <b>opaque</b> static field defining a member that is named by the field name
792      * without a qualifying member and to access the property of the name on an object.</p>
793      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
794      * object refers to a string specifying the initial width of the object's display 
795      * area.</p>
796      * @since 1.0
797      * @javascript Re-compilers must resolve the member of this static field to the
798      * identifier of the field name.
799      */
800     public static final Value.String.Member width    = new Value.String.Member(Members.width   );
801     /**
802      * <p>An <b>opaque</b> static field defining a member that is named by the field name
803      * without a qualifying member and to access the property of the name on an object.</p>
804      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
805      * object refers to a boolean value specifying whether to only declare this 
806      * object for future reference, but do not instantiate it.</p>
807      * @since 1.0
808      * @javascript Re-compilers must resolve the member of this static field to the
809      * identifier of the field name.
810      */
811     public static final Value.Boolean.Member declare = new Value.Boolean.Member(Members.declare);
812     /**
813      * <p>An <b>opaque</b> static field defining a member that is named by the field name
814      * without a qualifying member and to access the property of the name on an object.</p>
815      * <p>The property, identified by this member, of a {@link JsHTMLObjectElement} 
816      * object is a read-only reference to the {@link JsDocument} object this object 
817      * contains, if there is any and it is available, or <tt>null</tt> otherwise.</p>
818      * @since 1.0
819      * @javascript Re-compilers must resolve the member of this static field to the
820      * identifier of the field name.
821      */
822     public static final JsHTMLDocument.Member contentDocument = new JsHTMLDocument.Member(Members.contentDocument);
823 
824     @Override
825     /**
826      * <p>Returns the primitive value associated with the current instance, if there is one.
827      * This invocation simply returns the instance itself for the current instance is an 
828      * object and there is no primitive value for it.</p>
829      * @return The current object itself.
830      * @since 1.0
831      * @javascript Re-compilers must convert the instance invocation of this method directly
832      * into a JavaScript invocation on its current object instance without changing the 
833      * method name, but expanding variable arguments, if any, into comma-separated values. 
834      */
835     public final JsHTMLObjectElement valueOf() {
836         return new JsHTMLObjectElement((JsObject)var().valueOf());
837     }
838 }