fixes for moving ibex.js to collections
[org.ibex.xt-crawshaw.git] / src / java / ibex / xt / Servlet.java
index 33803db..1601506 100644 (file)
@@ -59,8 +59,10 @@ public class Servlet extends HttpServlet {
         }
 
         private JS params = new JS() {
+            private List keys = null;
             public Object get(Object key) { return request.getParameter(JS.toString(key)); }
-            public Enumeration keys() { return request.getParameterNames(); }
+            public Collection keys() {
+                return keys == null ? keys = Collections.list(request.getParameterNames()) : keys; }
         };
         private JS cookies = new JS() {
                 /*
@@ -69,16 +71,20 @@ public class Servlet extends HttpServlet {
                 */
             };
         private JS sessionAttributes = new JS() {
+            private List keys = null;
             public Object get(Object key) {
                 return request.getSession(true).getAttribute(JS.toString(key)); }
             public void put(Object key, Object val) {
                 if (val == null) request.getSession(true).removeAttribute(JS.toString(key));
                 else request.setAttribute(JS.toString(key), val); }
-            public Enumeration keys() { return request.getSession(true).getAttributeNames(); }
+            public Collection keys() {
+                return keys == null ? keys = Collections.list(request.getSession(true).getAttributeNames()) : keys; }
         };
         private JS requestHeader = new JS() {
+            private List keys = null;
             public Object get(Object key) { return request.getHeader(JS.toString(key)); }
-            public Enumeration keys() { return request.getHeaderNames(); }
+            public Collection keys() {
+                return keys == null ? keys = Collections.list(request.getHeaderNames()) : keys; }
         };
         private JS responseHeader = new JS() {
             public void put(Object key, Object val) {
@@ -114,7 +120,7 @@ public class Servlet extends HttpServlet {
                 if (!f.isDirectory()) return null;
                 String[] contents = f.list();
                 JSArray ret = new JSArray(contents.length);
-                for(int i=0; i<contents.length; i++) ret.addElement(contents[i]);
+                for(int i=0; i<contents.length; i++) ret.add(contents[i]);
                 return ret;
             //#end
             return null;