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