objects.addElement(null);
} else if (value.endsWith("arrayType") || value.endsWith("JSArray") || key.endsWith("arrayType")) {
objects.removeElementAt(objects.size() - 1);
- objects.addElement(new JSArray());
+ objects.addElement(JS.newArray());
}
}
}
if (objects.size() < 2) return;
// our parent "should" be an aggregate type -- add ourselves to it.
- if (parent != null && parent instanceof JSArray) {
+ // FIXME: Can we get away without JSArray being public?
+ /*if (parent != null && parent instanceof JSArray) {
objects.removeElementAt(objects.size() - 1);
((JSArray)parent).addElement(me);
- } else if (parent != null && parent instanceof JS) {
+ } else */ if (parent != null && parent instanceof JS) {
objects.removeElementAt(objects.size() - 1);
try {
((JS)parent).put(JS.S(name), me);
}*/
}
- protected String buildRequest(JSArray args) throws JSExn, IOException {
+ protected String buildRequest(JS[] args) throws JSExn, IOException {
// build up the request
StringBuffer content = new StringBuffer();
content.append("SOAPAction: " + action + "\r\n\r\n");
content.append(method);
content.append(nameSpace != null ? " xmlns=\"" + nameSpace + "\"" : "");
content.append(">\r\n");
- if (args.length() > 0) {
- Enumeration e = ((JS)args.elementAt(0)).keys();
+ if (args.length > 0) {
+ Enumeration e = args[0].keys();
while(e.hasMoreElements()) {
- Object key = e.nextElement();
- appendObject((String)key, args.elementAt(0).get((JS)key), content);
+ JS key = e.nextElement();
+ appendObject(JS.toString(key), args[0].get(key), content);
}
}
content.append(" </" + method + "></SOAP-ENV:Body></SOAP-ENV:Envelope>\r\n");