X-Git-Url: http://git.megacz.com/?p=org.ibex.js.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjs%2FSOAP.java;h=d1a2d6176cecbfb8c762147d0de9712254896fb4;hp=632a0a6189551aa7a95dfaa777dd00c3c6707757;hb=5a5f5ef235158d513c1f2879dc916b115a4fa9d0;hpb=e50fec35a2318586e3bb13f3a54a8a3532afee14 diff --git a/src/org/ibex/js/SOAP.java b/src/org/ibex/js/SOAP.java index 632a0a6..d1a2d61 100644 --- a/src/org/ibex/js/SOAP.java +++ b/src/org/ibex/js/SOAP.java @@ -5,10 +5,7 @@ package org.ibex.js; import java.io.*; -import java.util.*; -import org.ibex.net.*; import org.ibex.util.*; -import org.ibex.crypto.*; /** * A partial RPC-style SOAP 1.1 client. Implemented from the SOAP 1.1 @@ -44,33 +41,33 @@ public class SOAP extends XMLRPC { if (name.equals("SOAP-ENV:Fault")) fault = true; // add a generic struct; we'll change this if our type is different - objects.addElement(new JS.O()); + objects.push(new JS.Obj()); for(int i=0; i 0 && content.toString().trim().length() > 0) { // remove ourselves - Object me = objects.elementAt(objects.size() - 1); + Object me = objects.get(objects.size() - 1); if (fault || me instanceof String) { - objects.removeElementAt(objects.size() - 1); - objects.addElement(new String(content.getBuf(), 0, content.size()).intern()); + objects.pop(); + objects.push(new String(content.buf, 0, content.size()).intern()); content.reset(); } else if (me instanceof byte[]) { - objects.removeElementAt(objects.size() - 1); - objects.addElement(new Fountain.ByteArray(Base64.decode(new String(content.getBuf(), 0, content.size())), null)); + objects.pop(); + objects.push(new Fountain.ByteArray(Encode.fromBase64(new String(content.buf, 0, content.size())), null)); content.reset(); } else if (me instanceof Integer) { - objects.removeElementAt(objects.size() - 1); - objects.addElement(new Integer(new String(content.getBuf(), 0, content.size()))); + objects.pop(); + objects.push(new Integer(new String(content.buf, 0, content.size()))); content.reset(); } else if (me instanceof Boolean) { - objects.removeElementAt(objects.size() - 1); - String s = new String(content.getBuf(), 0, content.size()).trim(); - if (s.equals("1") || s.equals("true")) objects.addElement(Boolean.TRUE); - else objects.addElement(Boolean.FALSE); + objects.pop(); + String s = new String(content.buf, 0, content.size()).trim(); + if (s.equals("1") || s.equals("true")) objects.push(Boolean.TRUE); + else objects.push(Boolean.FALSE); content.reset(); } else if (me instanceof Double) { - objects.removeElementAt(objects.size() - 1); - objects.addElement(new Double(new String(content.getBuf(), 0, content.size()))); + objects.pop(); + objects.push(new Double(new String(content.buf, 0, content.size()))); content.reset(); } else { // okay, we got PCDATA for what is supposedly a // struct... somebody's not adding their type info... - String s = new String(content.getBuf(), 0, content.size()).trim(); + String s = new String(content.buf, 0, content.size()).trim(); boolean hasdot = false; for(int i=0; i 1 ? (JS)objects.elementAt(objects.size() - 2) : (JS)null; + JS parent = objects.size() > 1 ? (JS)objects.get(objects.size() - 2) : (JS)null; // we want to fold stuff back into the fault object if (objects.size() < 2) return; // our parent "should" be an aggregate type -- add ourselves to it. if (parent != null && parent instanceof JSArray) { - objects.removeElementAt(objects.size() - 1); - ((JSArray)parent).addElement(me); + objects.pop(); + ((JSArray)parent).push(me); } else if (parent != null && parent instanceof JS) { - objects.removeElementAt(objects.size() - 1); + objects.pop(); try { ((JS)parent).put(Script.S(name), me); } catch (JSExn e) { @@ -196,7 +193,7 @@ public class SOAP extends XMLRPC { System.arraycopy(buf, 0, writebuf, 0, numread); } sb.append(" "); - sb.append(new String(Base64.encode(writebuf))); + sb.append(new String(Encode.toBase64(writebuf))); sb.append("\r\n"); } sb.append(((Boolean)o).booleanValue() ? "1" : "0"); @@ -228,16 +225,16 @@ public class SOAP extends XMLRPC { } else if (o instanceof JSArray) { JSArray a = (JSArray)o; - sb.append(" <" + name + " SOAP-ENC:arrayType=\"xsd:ur-type[" + a.length() + "]\">"); - for(int i=0; i"); + for(int i=0; i\r\n"); } else if (o instanceof JS) { JS j = (JS)o; sb.append(" <" + name + ">"); - Enumeration e = j.keys(); - while(e.hasMoreElements()) { - Object key = e.nextElement(); + JS.Enumeration e = j.keys(); + while(e.hasNext()) { + Object key = e.next(); appendObject((String)key, j.get((JS)key), sb); } sb.append("\r\n"); @@ -260,11 +257,11 @@ public class SOAP extends XMLRPC { content.append(method); content.append(nameSpace != null ? " xmlns=\"" + nameSpace + "\"" : ""); content.append(">\r\n"); - if (args.length() > 0) { - Enumeration e = ((JS)args.elementAt(0)).keys(); - while(e.hasMoreElements()) { - JS key = (JS)e.nextElement(); - appendObject(((JSString)key).coerceToString(), ((JS)args.elementAt(0)).get(key), content); + if (args.size() > 0) { + JS.Enumeration e = ((JS)args.get(0)).keys(); + while(e.hasNext()) { + JS key = (JS)e.next(); + appendObject(((JSString)key).coerceToString(), ((JS)args.get(0)).get(key), content); } } content.append(" \r\n");