2002/04/28 21:12:47
[org.ibex.core.git] / src / org / xwt / SOAP.java
index e055809..d993fe8 100644 (file)
@@ -6,6 +6,7 @@ import java.net.*;
 import java.util.*;
 import org.mozilla.javascript.*;
 import org.xwt.util.*;
+import org.bouncycastle.util.encoders.Base64;
 
 /**
  *  A partial RPC-style SOAP 1.1 client. Implemented from the SOAP 1.1
@@ -59,6 +60,9 @@ class SOAP extends XMLRPC {
                 } else if (value.endsWith("string")) {
                     objects.removeElementAt(objects.size() - 1);
                     objects.addElement("");
+                } else if (value.endsWith("base64")) {
+                    objects.removeElementAt(objects.size() - 1);
+                    objects.addElement(new byte[] { });
                 } else if (value.endsWith("null")) {
                     objects.removeElementAt(objects.size() - 1);
                     objects.addElement(null);
@@ -84,6 +88,11 @@ class SOAP extends XMLRPC {
                 objects.removeElementAt(objects.size() - 1);
                 objects.addElement(new String(content.getBuf(), 0, content.size()).intern());
                 content.reset();
+
+            } else if (me instanceof byte[]) {
+                objects.removeElementAt(objects.size() - 1);
+                objects.addElement(new String(Base64.decode(new String(content.getBuf(), 0, content.size()))));
+                content.reset();                
                 
             } else if (me instanceof Integer) {
                 objects.removeElementAt(objects.size() - 1);