if (name.equals("SOAP-ENV:Envelope")) return;
if (name.equals("SOAP-ENV:Body")) return;
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.Obj());
+ objects.addElement(new JS());
for(int i=0; i<keys.length; i++) {
String key = keys[i];
} else if (value.endsWith("null")) {
objects.removeElementAt(objects.size() - 1);
objects.addElement(null);
- } else if (value.endsWith("arrayType") || value.endsWith("JS.Array") || key.endsWith("arrayType")) {
+ } else if (value.endsWith("arrayType") || value.endsWith("JSArray") || key.endsWith("arrayType")) {
objects.removeElementAt(objects.size() - 1);
- objects.addElement(new JS.Array());
+ objects.addElement(new JSArray());
}
}
}
} else if (me instanceof byte[]) {
objects.removeElementAt(objects.size() - 1);
- objects.addElement(new Res.ByteArray(Base64.decode(new String(content.getBuf(), 0, content.size()))));
+ objects.addElement(new Res.ByteArray(Base64.decode(new String(content.getBuf(), 0, content.size())), null));
content.reset();
} else if (me instanceof Integer) {
if (objects.size() < 2) return;
// our parent "should" be an aggregate type -- add ourselves to it.
- if (parent != null && parent instanceof JS.Array) {
+ if (parent != null && parent instanceof JSArray) {
objects.removeElementAt(objects.size() - 1);
- ((JS.Array)parent).addElement(me);
+ ((JSArray)parent).addElement(me);
} else if (parent != null && parent instanceof JS) {
objects.removeElementAt(objects.size() - 1);
}
/** Appends the SOAP representation of <code>o</code> to <code>sb</code> */
- void appendObject(String name, Object o, StringBuffer sb) throws JS.Exn {
+ void appendObject(String name, Object o, StringBuffer sb) throws JSExn {
if (o instanceof Number) {
if ((double)((Number)o).intValue() == ((Number)o).doubleValue()) {
sb.append(" <" + name + " xsi:type=\"xsd:int\">");
} catch (IOException e) {
if (Log.on) Log.log(this, "caught IOException while attempting to send a ByteStream via SOAP");
if (Log.on) Log.log(this, e);
- throw new JS.Exn("caught IOException while attempting to send a ByteStream via SOAP");
+ throw new JSExn("caught IOException while attempting to send a ByteStream via SOAP");
}
} else if (o instanceof String) {
}
sb.append("</" + name + ">\r\n");
- } else if (o instanceof JS.Array) {
- JS.Array a = (JS.Array)o;
+ } 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<a.length(); i++) appendObject("item", a.elementAt(i), sb);
sb.append("</" + name + ">\r\n");
} else if (o instanceof JS) {
JS j = (JS)o;
sb.append(" <" + name + ">");
- Object[] ids = j.keys();
- for(int i=0; i<ids.length; i++) appendObject(ids[i].toString(), j.get(ids[i].toString()), sb);
+ Enumeration e = j.keys();
+ while(e.hasMoreElements()) {
+ Object key = e.nextElement();
+ appendObject((String)key, j.get(key), sb);
+ }
sb.append("</" + name + ">\r\n");
+
}
}
- protected String send(JS.Array args, HTTP http) throws JS.Exn, IOException {
+ protected String send(JSArray args, HTTP http) throws JSExn, IOException {
// build up the request
StringBuffer content = new StringBuffer();
content.append("SOAPAction: " + action + "\r\n\r\n");
content.append(nameSpace != null ? " xmlns=\"" + nameSpace + "\"" : "");
content.append(">\r\n");
if (args.length() > 0) {
- Object[] o = ((JS)args.elementAt(0)).keys();
- for(int i=0; i<o.length; i++)
- appendObject(o[i].toString(), ((JS)args.elementAt(0)).get(o[i].toString()), content);
+ Enumeration e = ((JS)args.elementAt(0)).keys();
+ while(e.hasMoreElements()) {
+ Object key = e.nextElement();
+ appendObject((String)key, ((JS)args.elementAt(0)).get(key), content);
+ }
}
content.append(" </" + methodname + "></SOAP-ENV:Body></SOAP-ENV:Envelope>\r\n");
return content.toString();