[whatwg] HTMLCollection and HTMLAllCollection issue in HTML5 spec in respect to Java biding

Shiki Okasaka shiki at google.com
Mon Nov 23 22:22:27 PST 2009


It appears WHATWG revision r4323 [0] for HTMLCollection and
HTMLAllCollection causes a compile time error in Java.

The Java interfaces for HTMLCollection and HTMLAllCollection would
look like below following the Web IDL Java binding:

public interface HTMLCollection {
 public int getLength();
 public Element item(int index);
 public Element namedItem(String name);
}

public interface HTMLAllCollection extends HTMLCollection {
 // inherits length and item()
 public Object namedItem(String name); // overrides inherited namedItem()
 public HTMLAllCollection tags(String tagName);
}

In Jave, however, this type of overriding is not allowed [1], and this
might be why these two interfaces were defined without using
inheritance before.

A possible solution for this is, as suggested by Maciej [2], revising
the IDL definitions like below:

interface HTMLCollection {
 readonly attribute unsigned long length;
 caller getter object item(in unsigned long index);  // Element -> object
 caller getter object namedItem(in DOMString name);  // Element -> object
};

public interface HTMLAllCollection extends HTMLCollection {
 // inherits length, item() and namedItem()    // remove namedItem()
 public HTMLAllCollection tags(String tagName);
}

[0] http://html5.org/tools/web-apps-tracker?from=4322&to=4323
[1] http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.8
[2] http://www.w3.org/Bugs/Public/show_bug.cgi?id=8035

Best,

 - Shiki Okasaka



More information about the whatwg mailing list