2003/06/16 08:03:15
[org.ibex.core.git] / src / org / xwt / XMLRPC.java
index f103ad0..64d3fee 100644 (file)
@@ -79,97 +79,97 @@ class XMLRPC extends JS.Callable {
     // Methods to Recieve and parse XML-RPC Response ////////////////////////////////////////////////////
 
     private class Helper extends XML {
-       public Helper() { super(BUFFER_SIZE); }
-
-       public void startElement(XML.Element c) {
-           content.reset();
-           if (c.localName.equals("fault")) fault = true;
-           else if (c.localName.equals("struct")) objects.setElementAt(new JS.Obj(), objects.size() - 1);
-           else if (c.localName.equals("array")) objects.setElementAt(null, objects.size() - 1);
-           else if (c.localName.equals("value")) objects.addElement("");
-       }
-       
-       public void endElement(XML.Element c) {
-           
-           if (c.localName.equals("int") || c.localName.equals("i4"))
-               objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
-           
-           else if (c.localName.equals("boolean"))
-               objects.setElementAt(content.getBuf()[0] == '1' ? Boolean.TRUE : Boolean.FALSE, objects.size() - 1);
-           
-           else if (c.localName.equals("string"))
-               objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
-           
-           else if (c.localName.equals("double"))
-               objects.setElementAt(new Double(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
-           
-           else if (c.localName.equals("base64"))
-               objects.setElementAt(new ByteStream(Base64.decode(new String(content.getBuf(), 0, content.size()))), objects.size() - 1);
-           
-           else if (c.localName.equals("name"))
-               objects.addElement(new String(content.getBuf(), 0, content.size()));
-           
-           else if (c.localName.equals("value") && "".equals(objects.lastElement()))
-               objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
-           
-           else if (c.localName.equals("dateTime.iso8601")) {
-               throw new Error("not implemented");
-               /*
-                 String s = new String(content.getBuf(), 0, content.size());
-                 
-                 // strip whitespace
-                 int i=0;
-                 while(Character.isWhitespace(s.charAt(i))) i++;
-                 if (i > 0) s = s.substring(i);
-                 
-                 try {
-                 NativeDate nd = (NativeDate)Context.enter().newObject(org.xwt.util.JS.Obj.defaultObjects, "Date");
-                 double date = NativeDate.date_msecFromDate(Double.valueOf(s.substring(0, 4)).doubleValue(),
-                 Double.valueOf(s.substring(4, 6)).doubleValue() - 1,
-                 Double.valueOf(s.substring(6, 8)).doubleValue(),
-                 Double.valueOf(s.substring(9, 11)).doubleValue(),
-                 Double.valueOf(s.substring(12, 14)).doubleValue(),
-                 Double.valueOf(s.substring(15, 17)).doubleValue(),
-                 (double)0
-                 );
-                 nd.jsFunction_setTime(NativeDate.internalUTC(date));
-                 objects.setElementAt(nd, objects.size() - 1);
-                 
-                 } catch (Exception e) {
-                 if (Log.on) Log.log(this, "error parsing date : " + s);
-                 if (Log.on) Log.log(this, e);
-                 }
-               */
-               
-           } else if (c.localName.equals("member")) {
-               Object memberValue = objects.elementAt(objects.size() - 1);
-               String memberName = (String)objects.elementAt(objects.size() - 2);
-               JS struct = (JS)objects.elementAt(objects.size() - 3);
-               struct.put(memberName, memberValue);
-               objects.setSize(objects.size() - 2);
-               
-           } else if (c.localName.equals("data")) {
-               int i;
-               for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
-               JS.Array arr = new JS.Array();
-               for(int j = i + 1; j<objects.size(); j++) arr.put(new Integer(j - i - 1), objects.elementAt(j));
-               objects.setElementAt(arr, i);
-               objects.setSize(i + 1);
-               
-           }
-           
-           content.reset();
-       }
-       
-       public void characters(char[] ch, int start, int length) {
-           try { content.write(ch, start, length); }
-           catch (Exception e) { 
-               if (Log.on) Log.log(this, "Exception in XMLRPC.content() -- this should never happen");
-               if (Log.on) Log.log(this, e);
-           }
-       }
-       
-       public void whitespace(char[] ch, int start, int length) {}
+        public Helper() { super(BUFFER_SIZE); }
+
+        public void startElement(XML.Element c) {
+            content.reset();
+            if (c.localName.equals("fault")) fault = true;
+            else if (c.localName.equals("struct")) objects.setElementAt(new JS.Obj(), objects.size() - 1);
+            else if (c.localName.equals("array")) objects.setElementAt(null, objects.size() - 1);
+            else if (c.localName.equals("value")) objects.addElement("");
+        }
+        
+        public void endElement(XML.Element c) {
+            
+            if (c.localName.equals("int") || c.localName.equals("i4"))
+                objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
+            
+            else if (c.localName.equals("boolean"))
+                objects.setElementAt(content.getBuf()[0] == '1' ? Boolean.TRUE : Boolean.FALSE, objects.size() - 1);
+            
+            else if (c.localName.equals("string"))
+                objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
+            
+            else if (c.localName.equals("double"))
+                objects.setElementAt(new Double(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
+            
+            else if (c.localName.equals("base64"))
+                objects.setElementAt(new ByteStream(Base64.decode(new String(content.getBuf(), 0, content.size()))), objects.size() - 1);
+            
+            else if (c.localName.equals("name"))
+                objects.addElement(new String(content.getBuf(), 0, content.size()));
+            
+            else if (c.localName.equals("value") && "".equals(objects.lastElement()))
+                objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
+            
+            else if (c.localName.equals("dateTime.iso8601")) {
+                throw new Error("not implemented");
+                /*
+                  String s = new String(content.getBuf(), 0, content.size());
+                  
+                  // strip whitespace
+                  int i=0;
+                  while(Character.isWhitespace(s.charAt(i))) i++;
+                  if (i > 0) s = s.substring(i);
+                  
+                  try {
+                  NativeDate nd = (NativeDate)Context.enter().newObject(org.xwt.util.JS.Obj.defaultObjects, "Date");
+                  double date = NativeDate.date_msecFromDate(Double.valueOf(s.substring(0, 4)).doubleValue(),
+                  Double.valueOf(s.substring(4, 6)).doubleValue() - 1,
+                  Double.valueOf(s.substring(6, 8)).doubleValue(),
+                  Double.valueOf(s.substring(9, 11)).doubleValue(),
+                  Double.valueOf(s.substring(12, 14)).doubleValue(),
+                  Double.valueOf(s.substring(15, 17)).doubleValue(),
+                  (double)0
+                  );
+                  nd.jsFunction_setTime(NativeDate.internalUTC(date));
+                  objects.setElementAt(nd, objects.size() - 1);
+                  
+                  } catch (Exception e) {
+                  if (Log.on) Log.log(this, "error parsing date : " + s);
+                  if (Log.on) Log.log(this, e);
+                  }
+                */
+                
+            } else if (c.localName.equals("member")) {
+                Object memberValue = objects.elementAt(objects.size() - 1);
+                String memberName = (String)objects.elementAt(objects.size() - 2);
+                JS struct = (JS)objects.elementAt(objects.size() - 3);
+                struct.put(memberName, memberValue);
+                objects.setSize(objects.size() - 2);
+                
+            } else if (c.localName.equals("data")) {
+                int i;
+                for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
+                JS.Array arr = new JS.Array();
+                for(int j = i + 1; j<objects.size(); j++) arr.put(new Integer(j - i - 1), objects.elementAt(j));
+                objects.setElementAt(arr, i);
+                objects.setSize(i + 1);
+                
+            }
+            
+            content.reset();
+        }
+        
+        public void characters(char[] ch, int start, int length) {
+            try { content.write(ch, start, length); }
+            catch (Exception e) { 
+                if (Log.on) Log.log(this, "Exception in XMLRPC.content() -- this should never happen");
+                if (Log.on) Log.log(this, e);
+            }
+        }
+        
+        public void whitespace(char[] ch, int start, int length) {}
     }
 
     // Methods to make outbound XML-RPC request ///////////////////////////////////////////////////
@@ -240,11 +240,11 @@ class XMLRPC extends JS.Callable {
             }
             sb.append("</string></value>\n");
 
-           /*
+            /*
         } else if (o instanceof org.xwt.js.Date) {
             sb.append("                <value><dateTime.iso8601>");
-             FIXME
-           org.xwt.js.Date d = (org.xwt.js.Date)o;
+              FIXME
+            org.xwt.js.Date d = (org.xwt.js.Date)o;
             Date d = new Date(nd.getRawTime());
             sb.append(d.getYear() + 1900);
             if (d.getMonth() + 1 < 10) sb.append('0');
@@ -261,7 +261,7 @@ class XMLRPC extends JS.Callable {
             if (d.getSeconds() < 10) sb.append('0');
             sb.append(d.getSeconds());
             sb.append("</dateTime.iso8601></value>\n");
-           */
+            */
 
         } else if (o instanceof JS.Array) {
             if (tracker.get(o) != null) throw new JS.Exn("attempted to send multi-ref data structure via XML-RPC");
@@ -377,7 +377,7 @@ class XMLRPC extends JS.Callable {
             throw new JS.Exn("socket exception: " + se);
 
         } catch (JS.Exn jse) {
-           if (Log.on) Log.log(this, jse.toString());
+            if (Log.on) Log.log(this, jse.toString());
             throw jse;
         } finally {
             ThreadMessage.resumeThread();