2003/11/25 09:59:16
[org.ibex.core.git] / src / org / xwt / XMLRPC.java
index cd5b4df..39fc30d 100644 (file)
@@ -81,36 +81,27 @@ class XMLRPC extends JS {
 
         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
@@ -135,24 +126,20 @@ class XMLRPC extends JS {
                     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();
         }