X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FXMLRPC.java;h=ebea2a666a253b9a93a7fd76d38326e1c8dc838c;hb=4dd3aa0c890785bde9c7316a83299115a40af13b;hp=6b95b4d947d839c33cf8546ac3d67149828a8bac;hpb=78fe92d1a18e04584c782ea75e69e3e1c8fbbce7;p=org.ibex.core.git diff --git a/src/org/xwt/XMLRPC.java b/src/org/xwt/XMLRPC.java index 6b95b4d..ebea2a6 100644 --- a/src/org/xwt/XMLRPC.java +++ b/src/org/xwt/XMLRPC.java @@ -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 /////////////////////////////////////////////////// @@ -323,6 +324,7 @@ class XMLRPC extends XML implements Function { protected String send(Object[] args, HTTP http) throws JavaScriptException, IOException { StringBuffer content = new StringBuffer(); + content.append("\r\n"); content.append("\n"); content.append(" \n"); content.append(" "); @@ -343,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); } @@ -387,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;