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#HTMLLinkElement} class.</p>
028  * <p>This class represents a link 
029  * in an HTML document, or a {@link JsHTMLElement} object created with the HTML 
030  * tag <tt>&lt;link&gt;</tt> which specifies a link to an external resource, and defines 
031  * this document's relationship to that resource (or vice versa).</p> 
032  *
033  * @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>
034  *
035  * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be
036  * generated into the target codes. Re-compilers must exit with error on the operations of
037  * accessing that kind of class objects.
038  * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored
039  * and <tt>instanceof</tt> to it always <tt>true</tt>.
040  */
041 public class JsHTMLLinkElement extends JsClient.HTMLLinkElement.Prototype
042 {
043     /**
044      * <p>An <b>internal</b> class containing membership data for its enclosing
045      * opaque class.</p>
046      * <p>This class is only used inside of <b>opaque</b> or <b>internal</b> classes or
047      * class members.</p>
048      *
049      * @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>
050      * 
051      * @javascript Re-compilers must report error on resolving an <b>internal</b> class.
052      */
053     protected static abstract class Members extends JsClient.HTMLLinkElement.Prototype.Members
054     {
055         /**
056          * <p>An <b>internal</b> static field defining a member ID of the field name and
057          * used internally to define a member of the same name.</p>
058          * @since 1.0
059          * @see JsHTMLLinkElement#href
060          * @see JsHTMLLinkElement.Member#href
061          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
062          */
063         public final static Mid href      = id("href"     );
064         /**
065          * <p>An <b>internal</b> static field defining a member ID of the field name and
066          * used internally to define a member of the same name.</p>
067          * @since 1.0
068          * @see JsHTMLLinkElement#accessKey
069          * @see JsHTMLLinkElement.Member#accessKey
070          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
071          */
072         public final static Mid accessKey = id("accessKey");
073         /**
074          * <p>An <b>internal</b> static field defining a member ID of the field name and
075          * used internally to define a member of the same name.</p>
076          * @since 1.0
077          * @see JsHTMLLinkElement#charset
078          * @see JsHTMLLinkElement.Member#charset
079          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
080          */
081         public final static Mid charset   = id("charset"  );
082         /**
083          * <p>An <b>internal</b> static field defining a member ID of the field name and
084          * used internally to define a member of the same name.</p>
085          * @since 1.0
086          * @see JsHTMLLinkElement#coords
087          * @see JsHTMLLinkElement.Member#coords
088          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
089          */
090         public final static Mid coords    = id("coords"   );
091         /**
092          * <p>An <b>internal</b> static field defining a member ID of the field name and
093          * used internally to define a member of the same name.</p>
094          * @since 1.0
095          * @see JsHTMLLinkElement#hreflang
096          * @see JsHTMLLinkElement.Member#hreflang
097          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
098          */
099         public final static Mid hreflang  = id("hreflang" );
100         /**
101          * <p>An <b>internal</b> static field defining a member ID of the field name and
102          * used internally to define a member of the same name.</p>
103          * @since 1.0
104          * @see JsHTMLLinkElement#rel
105          * @see JsHTMLLinkElement.Member#rel
106          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
107          */
108         public final static Mid rel       = id("rel"      );
109         /**
110          * <p>An <b>internal</b> static field defining a member ID of the field name and
111          * used internally to define a member of the same name.</p>
112          * @since 1.0
113          * @see JsHTMLLinkElement#rev
114          * @see JsHTMLLinkElement.Member#rev
115          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
116          */
117         public final static Mid rev       = id("rev"      );
118         /**
119          * <p>An <b>internal</b> static field defining a member ID of the field name and
120          * used internally to define a member of the same name.</p>
121          * @since 1.0
122          * @see JsHTMLLinkElement#shape
123          * @see JsHTMLLinkElement.Member#shape
124          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
125          */
126         public final static Mid shape     = id("shape"    );
127         /**
128          * <p>An <b>internal</b> static field defining a member ID of the field name and
129          * used internally to define a member of the same name.</p>
130          * @since 1.0
131          * @see JsHTMLLinkElement#tabIndex
132          * @see JsHTMLLinkElement.Member#tabIndex
133          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
134          */
135         public final static Mid tabIndex  = id("tabIndex" );
136         /**
137          * <p>An <b>internal</b> static field defining a member ID of the field name and
138          * used internally to define a member of the same name.</p>
139          * @since 1.0
140          * @see JsHTMLLinkElement#target
141          * @see JsHTMLLinkElement.Member#target
142          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
143          */
144         public final static Mid target    = id("target"   );
145         /**
146          * <p>An <b>internal</b> static field defining a member ID of the field name and
147          * used internally to define a member of the same name.</p>
148          * @since 1.0
149          * @see JsHTMLLinkElement#type
150          * @see JsHTMLLinkElement.Member#type
151          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
152          */
153         public final static Mid type      = id("type"     );
154     }
155 
156     /**
157      * <p>An <b>opaque</b> class representing members of its enclosing <b>opaque</b> type.</p>
158      * <p>Note that, this class is <b>opaque</b> but its constructors are all <b>internal</b>. 
159      * This class and the subclasses of this class are used to declare either <b>opaque</b> 
160      * <tt>public</tt> instance fields of the opaque type {@link js.Var.Member} or the 
161      * <b>opaque</b> <tt>public</tt> static fields of other <b>opaque</b> types while their 
162      * constructors are used to define the fields inside <b>opaque</b> classes. Under 
163      * either circumstance, the field names must be exactly same as the member names, as 
164      * the <b>opaque</b> fields of <b>opaque</b> types are resolved by re-compilers directly 
165      * based on the field names.</p>
166      *
167      * @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>
168      * 
169      * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be created
170      * in the target codes. Re-compilers must exit with error on operations accessing that kind 
171      * of class objects.
172      * Re-compilers must resolve an <b>opaque</b> instance field declared by this class in
173      * {@link js.Var.Member} or its subclasses to the JavaScript identifier: 
174      * <pre>q.m</pre>
175      * where <tt>m</tt> is the identifier of the field name and <tt>q</tt> is the identifier
176      * resolved from the instance of the enclosing member. Re-compilers must resolve an 
177      * <b>opaque</b> static field declared by this class in <b>opaque</b> types other than 
178      * {@link js.Var.Member} and its subclasses to the JavaScript identifier: 
179      * <pre>m</pre>
180      * where <tt>m</tt> is the identifier of the field name. And re-compilers must report
181      * error on the access to <b>opaque</b> fields declared by this class under any other 
182      * circumstances.
183      */
184     public static class Member extends JsClient.HTMLLinkElement.Prototype.Member
185     {
186         /**
187          * <p>Internally constructs a member based on a qualifying member.</p>
188          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
189          * or <b>internal</b> classes or class members.</p>
190          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
191          * <b>opaque</b>. This constructor is used to define <b>opaque</b> instance fields 
192          * declared in the declaring class of this constructor itself or its subclasses. 
193          * Under this circumstance, the field names must be exactly same as the member 
194          * names, as the <b>opaque</b> instance fields of the <b>opaque</b> type 
195          * {@link js.Var.Member} or its subclasses are resolved by re-compilers directly
196          * to their names appending to the name resolved from the specified qualifying 
197          * member with a dot in between.</p>
198          * @param q A qualifying member
199          * @param mid The ID of the member to construct
200          * @since 1.0
201          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
202          */
203         public Member(JsObject.Member q, Mid mid) {
204             super(q, mid);
205         }
206         /**
207          * <p>Internally constructs a member without a qualifying member.</p>
208          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
209          * or <b>internal</b> classes or class members.</p>
210          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
211          * <b>opaque</b>. This constructor is used to define <b>opaque</b> static fields, 
212          * declared in <b>opaque</b> types other than the declaring class of this constructor 
213          * itself and its subclasses. Under this circumstance, the field names must be
214          * exactly same as the member names, as the <b>opaque</b> static fields of <b>opaque</b>
215          * types are generally resolved by re-compilers directly to identifiers of their names.</p>
216          * @param mid The ID of the member to construct
217          * @since 1.0
218          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
219          */
220         public Member(Mid mid) {
221             super(mid);
222         }
223         @Override
224         /**
225          * <p>Evaluates the property, represented by the current member instance, of the
226          * argument object.</p>
227          * @param o The argument object
228          * @return The value of the current member based on the object argument.
229          * @since 1.0
230          * @javascript Re-compilers must convert the instance invocation of this method into
231          * the JavaScript expression: 
232          * <pre>o.m</pre>
233          * where <tt>m</tt> is the identifier name resolved from the current member
234          * instance of the invocation.
235          */
236         public JsHTMLLinkElement with(ObjectLike o) {
237             return new JsHTMLLinkElement(super.with(o));
238         }
239 
240         /**
241          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
242          * name of this field, qualified by the current member instance of the field, and 
243          * to access the property of the name on an object.</p>
244          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
245          * object refers to the absolute URI of the linked resource.</p> 
246          * @since 1.0
247          * @javascript Re-compilers must resolve the member of this instance field to the
248          * identifier of the field name appending to the identifier resolved from its 
249          * qualifying member with a dot in between.
250          */
251         public final Value.String.Member href      = new Value.String.Member(this, Members.href     );
252         /**
253          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
254          * name of this field, qualified by the current member instance of the field, and 
255          * to access the property of the name on an object.</p>
256          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
257          * object refers to a string specifying single character access key to the 
258          * element. An access key is a single character from the document character set. 
259          * Pressing an access key assigned to an element gives focus to the element. 
260          * The action that occurs when an element receives focus depends on the element.</p> 
261          * @since 1.0
262          * @javascript Re-compilers must resolve the member of this instance field to the
263          * identifier of the field name appending to the identifier resolved from its 
264          * qualifying member with a dot in between.
265          */
266         public final Value.String.Member accessKey = new Value.String.Member(this, Members.accessKey);
267         /**
268          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
269          * name of this field, qualified by the current member instance of the field, and 
270          * to access the property of the name on an object.</p>
271          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
272          * object refers to a string specifying the character encoding of the linked 
273          * resource.</p> 
274          * @since 1.0
275          * @javascript Re-compilers must resolve the member of this instance field to the
276          * identifier of the field name appending to the identifier resolved from its 
277          * qualifying member with a dot in between.
278          */
279         public final Value.String.Member charset   = new Value.String.Member(this, Members.charset  );
280         /**
281          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
282          * name of this field, qualified by the current member instance of the field, and 
283          * to access the property of the name on an object.</p>
284          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
285          * object refers to a comma-separated list of lengths, defining an active region 
286          * geometry. The lengths specify the position and shape on the screen. The number 
287          * and order of values depends on the {@link #shape} being defined. Possible 
288          * combinations are: 
289          * <ul>
290          * <li><tt>left-x, top-y, right-x, bottom-y</tt> when {@link #shape} is <tt>"rect"</tt>.</li>
291          * <li><tt>center-x, center-y, radius</tt> when {@link #shape} is <tt>"circle"</tt>. When the 
292          * radius value is a percentage value, web browsers should calculate the final 
293          * radius value based on the associated object's width and height. The radius 
294          * should be the smaller value of the two.</li>
295          * <li><tt>x1, y1, x2, y2, ..., xN, yN</tt> when {@link #shape} is <tt>"poly"</tt>. The first x 
296          * and y coordinate pair and the last should be the same to close the polygon. 
297          * When these coordinate values are not the same, web browsers should infer an 
298          * additional coordinate pair to close the polygon.</li>
299          * </ul></p> 
300          * @since 1.0
301          * @see #shape
302          * @javascript Re-compilers must resolve the member of this instance field to the
303          * identifier of the field name appending to the identifier resolved from its 
304          * qualifying member with a dot in between.
305          */
306         public final Value.String.Member coords    = new Value.String.Member(this, Members.coords   );
307         /**
308          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
309          * name of this field, qualified by the current member instance of the field, and 
310          * to access the property of the name on an object.</p>
311          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
312          * object refers to the language code of the linked resource.</p> 
313          * @since 1.0
314          * @javascript Re-compilers must resolve the member of this instance field to the
315          * identifier of the field name appending to the identifier resolved from its 
316          * qualifying member with a dot in between.
317          */
318         public final Value.String.Member hreflang  = new Value.String.Member(this, Members.hreflang );
319         /**
320          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
321          * name of this field, qualified by the current member instance of the field, and 
322          * to access the property of the name on an object.</p>
323          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
324          * object refers to the forward link type which describes the relationship from 
325          * the current document to the anchor specified by the {@link #href} property. 
326          * The value may be a space-separated list of link types.</p>
327          * @since 1.0
328          * @javascript Re-compilers must resolve the member of this instance field to the
329          * identifier of the field name appending to the identifier resolved from its 
330          * qualifying member with a dot in between.
331          */
332         public final Value.String.Member rel       = new Value.String.Member(this, Members.rel      );
333         /**
334          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
335          * name of this field, qualified by the current member instance of the field, and 
336          * to access the property of the name on an object.</p>
337          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
338          * object refers to the reverse link type which describes a reverse link from 
339          * the anchor specified by the {@link #href} property to the current document. 
340          * The value may be a space-separated list of link types.</p>
341          * @since 1.0
342          * @javascript Re-compilers must resolve the member of this instance field to the
343          * identifier of the field name appending to the identifier resolved from its 
344          * qualifying member with a dot in between.
345          */
346         public final Value.String.Member rev       = new Value.String.Member(this, Members.rev      );
347         /**
348          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
349          * name of this field, qualified by the current member instance of the field, and 
350          * to access the property of the name on an object.</p>
351          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
352          * object refers to a string naming the shape of the active area. The coordinates 
353          * are given by {@link #coords}. Possible values of the property are: 
354          * <ul>
355          * <li><tt>"default"</tt>: Specifies the entire region.</li>
356          * <li><tt>"rect"</tt>: Defines a rectangular region.</li>
357          * <li><tt>"circle"</tt>: Defines a circular region.</li>
358          * <li><tt>"poly"</tt>: Defines a polygonal region.</li>
359          * </ul></p>
360          * @since 1.0
361          * @see #coords
362          * @javascript Re-compilers must resolve the member of this instance field to the
363          * identifier of the field name appending to the identifier resolved from its 
364          * qualifying member with a dot in between.
365          */
366         public final Value.String.Member shape     = new Value.String.Member(this, Members.shape    );
367         /**
368          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
369          * name of this field, qualified by the current member instance of the field, and 
370          * to access the property of the name on an object.</p>
371          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
372          * object refers to an index number representing the element's position in the 
373          * tabbing order.</p>
374          * @since 1.0
375          * @javascript Re-compilers must resolve the member of this instance field to the
376          * identifier of the field name appending to the identifier resolved from its 
377          * qualifying member with a dot in between.
378          */
379         public final Value.Number.Member tabIndex  = new Value.Number.Member(this, Members.tabIndex );
380         /**
381          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
382          * name of this field, qualified by the current member instance of the field, and 
383          * to access the property of the name on an object.</p>
384          * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
385          * object refers to string specifying the {@link JsHTMLFrameElement#name} of a 
386          * target frame to render the resource in.</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 target    = new Value.String.Member(this, Members.target   );
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 JsHTMLLinkElement} 
398          * object refers to string specifying the advisory content type which gives an 
399          * advisory hint as to the content type of the content available at the link 
400          * target address. It allows web browsers to opt to use a fallback mechanism 
401          * rather than fetch the content if they are advised that they will get content 
402          * in a content type they do not support. Those who use this property take 
403          * responsibility to manage the risk that it may become inconsistent with the 
404          * content available at the link target address. Please consult <a href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/">
405          * registered content types</a> for the current list of registered content types</p>
406          * @since 1.0
407          * @javascript Re-compilers must resolve the member of this instance field to the
408          * identifier of the field name appending to the identifier resolved from its 
409          * qualifying member with a dot in between.
410          */
411         public final Value.String.Member type      = new Value.String.Member(this, Members.type     );
412     }
413 
414     /**
415      * <p>Casts an <b>opaque</b> object to the current <b>opaque</b> type by wrapping it
416      * with the wrapping constructor.</p>
417      * @param var The argument of an <b>opaque</b> object.
418      * @since 1.0
419      * @javascript Re-compilers must ignore the construction operation of this constructor,
420      * that is, replacing it with its only argument.
421      */
422     public JsHTMLLinkElement(JsObject var) {
423         super(var);
424     }
425 
426     /**
427      * <p>An <b>opaque</b> static field defining a member that is named by the field name
428      * without a qualifying member and to access the property of the name on an object.</p>
429      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
430      * object refers to the absolute URI of the linked resource.</p> 
431      * @since 1.0
432      * @javascript Re-compilers must resolve the member of this static field to the
433      * identifier of the field name.
434      */
435     public static final Value.String.Member href      = new Value.String.Member(Members.href     );
436     /**
437      * <p>An <b>opaque</b> static field defining a member that is named by the field name
438      * without a qualifying member and to access the property of the name on an object.</p>
439      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
440      * object refers to a string specifying single character access key to the 
441      * element. An access key is a single character from the document character set. 
442      * Pressing an access key assigned to an element gives focus to the element. 
443      * The action that occurs when an element receives focus depends on the element.</p> 
444      * @since 1.0
445      * @javascript Re-compilers must resolve the member of this static field to the
446      * identifier of the field name.
447      */
448     public static final Value.String.Member accessKey = new Value.String.Member(Members.accessKey);
449     /**
450      * <p>An <b>opaque</b> static field defining a member that is named by the field name
451      * without a qualifying member and to access the property of the name on an object.</p>
452      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
453      * object refers to a string specifying the character encoding of the linked 
454      * resource.</p> 
455      * @since 1.0
456      * @javascript Re-compilers must resolve the member of this static field to the
457      * identifier of the field name.
458      */
459     public static final Value.String.Member charset   = new Value.String.Member(Members.charset  );
460     /**
461      * <p>An <b>opaque</b> static field defining a member that is named by the field name
462      * without a qualifying member and to access the property of the name on an object.</p>
463      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
464      * object refers to a comma-separated list of lengths, defining an active region 
465      * geometry. The lengths specify the position and shape on the screen. The number 
466      * and order of values depends on the {@link #shape} being defined. Possible 
467      * combinations are: 
468      * <ul>
469      * <li><tt>left-x, top-y, right-x, bottom-y</tt> when {@link #shape} is <tt>"rect"</tt>.</li>
470      * <li><tt>center-x, center-y, radius</tt> when {@link #shape} is <tt>"circle"</tt>. When the 
471      * radius value is a percentage value, web browsers should calculate the final 
472      * radius value based on the associated object's width and height. The radius 
473      * should be the smaller value of the two.</li>
474      * <li><tt>x1, y1, x2, y2, ..., xN, yN</tt> when {@link #shape} is <tt>"poly"</tt>. The first x 
475      * and y coordinate pair and the last should be the same to close the polygon. 
476      * When these coordinate values are not the same, web browsers should infer an 
477      * additional coordinate pair to close the polygon.</li>
478      * </ul></p> 
479      * @since 1.0
480      * @see #shape
481      * @javascript Re-compilers must resolve the member of this static field to the
482      * identifier of the field name.
483      */
484     public static final Value.String.Member coords    = new Value.String.Member(Members.coords   );
485     /**
486      * <p>An <b>opaque</b> static field defining a member that is named by the field name
487      * without a qualifying member and to access the property of the name on an object.</p>
488      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
489      * object refers to the language code of the linked resource.</p> 
490      * @since 1.0
491      * @javascript Re-compilers must resolve the member of this static field to the
492      * identifier of the field name.
493      */
494     public static final Value.String.Member hreflang  = new Value.String.Member(Members.hreflang );
495     /**
496      * <p>An <b>opaque</b> static field defining a member that is named by the field name
497      * without a qualifying member and to access the property of the name on an object.</p>
498      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
499      * object refers to the forward link type which describes the relationship from 
500      * the current document to the anchor specified by the {@link #href} property. 
501      * The value may be a space-separated list of link types.</p>
502      * @since 1.0
503      * @javascript Re-compilers must resolve the member of this static field to the
504      * identifier of the field name.
505      */
506     public static final Value.String.Member rel       = new Value.String.Member(Members.rel      );
507     /**
508      * <p>An <b>opaque</b> static field defining a member that is named by the field name
509      * without a qualifying member and to access the property of the name on an object.</p>
510      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
511      * object refers to the reverse link type which describes a reverse link from 
512      * the anchor specified by the {@link #href} property to the current document. 
513      * The value may be a space-separated list of link types.</p>
514      * @since 1.0
515      * @javascript Re-compilers must resolve the member of this static field to the
516      * identifier of the field name.
517      */
518     public static final Value.String.Member rev       = new Value.String.Member(Members.rev      );
519     /**
520      * <p>An <b>opaque</b> static field defining a member that is named by the field name
521      * without a qualifying member and to access the property of the name on an object.</p>
522      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
523      * object refers to a string naming the shape of the active area. The coordinates 
524      * are given by {@link #coords}. Possible values of the property are: 
525      * <ul>
526      * <li><tt>"default"</tt>: Specifies the entire region.</li>
527      * <li><tt>"rect"</tt>: Defines a rectangular region.</li>
528      * <li><tt>"circle"</tt>: Defines a circular region.</li>
529      * <li><tt>"poly"</tt>: Defines a polygonal region.</li>
530      * </ul></p>
531      * @since 1.0
532      * @see #coords
533      * @javascript Re-compilers must resolve the member of this static field to the
534      * identifier of the field name.
535      */
536     public static final Value.String.Member shape     = new Value.String.Member(Members.shape    );
537     /**
538      * <p>An <b>opaque</b> static field defining a member that is named by the field name
539      * without a qualifying member and to access the property of the name on an object.</p>
540      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
541      * object refers to an index number representing the element's position in the 
542      * tabbing order.</p>
543      * @since 1.0
544      * @javascript Re-compilers must resolve the member of this static field to the
545      * identifier of the field name.
546      */
547     public static final Value.Number.Member tabIndex  = new Value.Number.Member(Members.tabIndex );
548     /**
549      * <p>An <b>opaque</b> static field defining a member that is named by the field name
550      * without a qualifying member and to access the property of the name on an object.</p>
551      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
552      * object refers to string specifying the {@link JsHTMLFrameElement#name} of a 
553      * target frame to render the resource in.</p>
554      * @since 1.0
555      * @javascript Re-compilers must resolve the member of this static field to the
556      * identifier of the field name.
557      */
558     public static final Value.String.Member target    = new Value.String.Member(Members.target   );
559     /**
560      * <p>An <b>opaque</b> static field defining a member that is named by the field name
561      * without a qualifying member and to access the property of the name on an object.</p>
562      * <p>The property, identified by this member, of a {@link JsHTMLLinkElement} 
563      * object refers to string specifying the advisory content type which gives an 
564      * advisory hint as to the content type of the content available at the link 
565      * target address. It allows web browsers to opt to use a fallback mechanism 
566      * rather than fetch the content if they are advised that they will get content 
567      * in a content type they do not support. Those who use this property take 
568      * responsibility to manage the risk that it may become inconsistent with the 
569      * content available at the link target address. Please consult <a href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/">
570      * registered content types</a> for the current list of registered content types</p>
571      * @since 1.0
572      * @javascript Re-compilers must resolve the member of this static field to the
573      * identifier of the field name.
574      */
575     public static final Value.String.Member type      = new Value.String.Member(Members.type     );
576 
577     @Override
578     /**
579      * <p>Returns the primitive value associated with the current instance, if there is one.
580      * This invocation simply returns the instance itself for the current instance is an 
581      * object and there is no primitive value for it.</p>
582      * @return The current object itself.
583      * @since 1.0
584      * @javascript Re-compilers must convert the instance invocation of this method directly
585      * into a JavaScript invocation on its current object instance without changing the 
586      * method name, but expanding variable arguments, if any, into comma-separated values. 
587      */
588     public JsHTMLLinkElement valueOf() {
589         return new JsHTMLLinkElement((JsObject)var().valueOf());
590     }
591     /**
592      * <p>Removes keyboard focus from the current element.</p>
593      * @since 1.0
594      * @javascript Re-compilers must convert the instance invocation of this method directly
595      * into a JavaScript invocation on its current object instance without changing the 
596      * method name, but expanding variable arguments, if any, into comma-separated values. 
597      */
598     public void blur() {
599         call(blur);
600     }
601     /**
602      * <p>Gives keyboard focus to the current element.</p>
603      * @since 1.0
604      * @javascript Re-compilers must convert the instance invocation of this method directly
605      * into a JavaScript invocation on its current object instance without changing the 
606      * method name, but expanding variable arguments, if any, into comma-separated values. 
607      */
608     public void focus() {
609         call(focus);
610     }
611 }