2003/04/24 14:33:28
[org.ibex.core.git] / src / org / xwt / XMLRPC.java
index 2bbebb9..ebea2a6 100644 (file)
@@ -76,38 +76,38 @@ class XMLRPC extends XML implements Function {
 
     // Methods to Recieve and parse XML-RPC Response ////////////////////////////////////////////////////
 
-    public void startElement(String name, String[] keys, Object[] vals, int line, int col) {
+    public void startElement(XML.Element c) {
         content.reset();
-        if (name.equals("fault")) fault = true;
-        else if (name.equals("struct")) objects.setElementAt(new JSObject(false), objects.size() - 1);
-        else if (name.equals("array")) objects.setElementAt(null, objects.size() - 1);
-        else if (name.equals("value")) objects.addElement("");
+        if (c.localName.equals("fault")) fault = true;
+        else if (c.localName.equals("struct")) objects.setElementAt(new JSObject(false), 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(String name, int line, int col) {
+    public void endElement(XML.Element c) {
 
-        if (name.equals("int") || name.equals("i4"))
+        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 (name.equals("boolean"))
+        else if (c.localName.equals("boolean"))
             objects.setElementAt(content.getBuf()[0] == '1' ? Boolean.TRUE : Boolean.FALSE, objects.size() - 1);
 
-        else if (name.equals("string"))
+        else if (c.localName.equals("string"))
             objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
 
-        else if (name.equals("double"))
+        else if (c.localName.equals("double"))
             objects.setElementAt(new Double(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
 
-        else if (name.equals("base64"))
+        else if (c.localName.equals("base64"))
             objects.setElementAt(new ByteStream(Base64.decode(new String(content.getBuf(), 0, content.size()))), objects.size() - 1);
 
-        else if (name.equals("name"))
+        else if (c.localName.equals("name"))
             objects.addElement(new String(content.getBuf(), 0, content.size()));
 
-        else if (name.equals("value") && "".equals(objects.lastElement()))
+        else if (c.localName.equals("value") && "".equals(objects.lastElement()))
             objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
 
-        else if (name.equals("dateTime.iso8601")) {
+        else if (c.localName.equals("dateTime.iso8601")) {
             String s = new String(content.getBuf(), 0, content.size());
 
             // strip whitespace
@@ -133,14 +133,14 @@ class XMLRPC extends XML implements Function {
                 if (Log.on) Log.log(this, e);
             }
 
-        } else if (name.equals("member")) {
+        } else if (c.localName.equals("member")) {
             Object memberValue = objects.elementAt(objects.size() - 1);
             String memberName = (String)objects.elementAt(objects.size() - 2);
             Scriptable struct = (Scriptable)objects.elementAt(objects.size() - 3);
             struct.put(memberName, struct, memberValue);
             objects.setSize(objects.size() - 2);
 
-        } else if (name.equals("data")) {
+        } else if (c.localName.equals("data")) {
             int i;
             for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
             Object[] arr = new Object[objects.size() - i - 1];
@@ -153,7 +153,7 @@ class XMLRPC extends XML implements Function {
         content.reset();
     }
 
-    public void content(char[] ch, int start, int length, int line, int col) {
+    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");
@@ -161,6 +161,7 @@ class XMLRPC extends XML implements Function {
         }
     }
 
+    public void whitespace(char[] ch, int start, int length) {}
 
     // Methods to make outbound XML-RPC request ///////////////////////////////////////////////////
 
@@ -344,7 +345,7 @@ class XMLRPC extends XML implements Function {
         // parse XML reply
         try {
             parse(br);
-        } catch (XML.SAXException e) {
+        } catch (XML.XMLException e) {
             if (Log.on) Log.log(this, "reply from server was not well-formed XML: " + e);
             throw new JavaScriptException("reply from server was not well-formed XML: " + e);
         }
@@ -388,6 +389,8 @@ class XMLRPC extends XML implements Function {
     }
 
     public XMLRPC(String url, String methodname, HTTP http) {
+        super(BUFFER_SIZE);
+
         this.http = http;
         this.url = url;
         this.methodname = methodname;