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(), objects.size() - 1);
- else if (c.localName.equals("array")) objects.setElementAt(null, objects.size() - 1);
- else if (c.localName.equals("value")) objects.addElement("");
+ //#switch(c.localName)
+ case "fault": fault = true;
+ case "struct": objects.setElementAt(new JS(), objects.size() - 1);
+ case "array": objects.setElementAt(null, objects.size() - 1);
+ case "value": objects.addElement("");
+ //#end
}
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"))
+ //#switch(c.localName)
+ case "int": objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
+ case "i4": objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
+ case "boolean": objects.setElementAt(content.getBuf()[0] == '1' ? Boolean.TRUE : Boolean.FALSE, objects.size() - 1);
+ case "string": objects.setElementAt(new String(content.getBuf(), 0, content.size()), objects.size() - 1);
+ case "double": objects.setElementAt(new Double(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
+ case "base64": objects.setElementAt(new Res.ByteArray(Base64.decode(new String(content.getBuf(), 0, content.size())),
+ null), objects.size() - 1);
+ case "name": objects.addElement(new String(content.getBuf(), 0, content.size()));
+ case "value": if ("".equals(objects.lastElement()))
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 Res.ByteArray(Base64.decode(new String(content.getBuf(), 0, content.size())), null), 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")) {
+ case "dateTime.iso8601":
String s = new String(content.getBuf(), 0, content.size());
// strip whitespace
if (Log.on) Log.log(this, "error parsing date : " + s);
if (Log.on) Log.log(this, e);
}
-
- } else if (c.localName.equals("member")) {
+ case "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")) {
+ case "data":
int i;
for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
JSArray arr = new JSArray();
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);
-
- }
-
+ //#end
content.reset();
}