public final InputStream getInputStream() throws IOException { return getInputStream(""); }
public Res graft(Object newResource) { throw new JS.Exn("cannot graft onto this resource"); }
- public Object get(Object key) { return new Ref(this, key); }
+
+ private Hash refCache = null;
+ public Object get(Object key) {
+ Object ret = refCache == null ? null : refCache.get(key);
+ if (ret != null) return ret;
+ ret = new Ref(this, key);
+ if (refCache == null) refCache = new Hash();
+ refCache.put(key, ret);
+ return ret;
+ }
+
public void put(Object key, Object val) { throw new JS.Exn("cannot put to a resource"); }
public Object[] keys() { throw new JS.Exn("cannot enumerate a resource"); }