01: package jsint;
02:
03: import java.util.Hashtable;
04:
05: /** An Importer that can handle a wildcard, like "java.io.*". **/
06: public class WildImporter implements Importer {
07: String prefix;
08:
09: public WildImporter(String name) {
10: this .prefix = name.substring(0, name.length() - "*".length());
11: }
12:
13: public Class classNamed(String name) {
14: try {
15: return (name.startsWith(prefix)) ? Import.forName(name)
16: : (name.indexOf(".") == -1) ? Import.forName(prefix
17: + name) : null;
18: } catch (java.lang.SecurityException se) {
19: // Can come back from Netscape. Assume the guessed name doesn't exist.
20: return null;
21: } catch (Throwable t) {
22: E.warn(this + " " + name + " " + t);
23: return null;
24: }
25: }
26:
27: public boolean equals(Object x) {
28: return this .getClass() == x.getClass()
29: && this .prefix == ((WildImporter) x).prefix;
30: }
31:
32: public int hashCode() {
33: return this .prefix.hashCode();
34: }
35:
36: public String toString() {
37: return "(import " + prefix + "*)";
38: }
39:
40: public void reset() {
41: }
42: }
|