2003/09/20 05:03:47
[org.ibex.core.git] / src / org / xwt / Res.java
index 8f7906a..b956931 100644 (file)
@@ -14,7 +14,17 @@ public abstract class Res extends JS {
     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"); }