List<ParamType> paramTypes,
List<CorbaTypeMap> maps)
throws Exception {
// Build the list of DII arguments, returns, and exceptions
NVList list = orb.create_list(streamables.length);
prepareArgs(corbaMsg, paramTypes);
for (int i = 0; i < paramTypes.size(); i++) {
ParamType param = paramTypes.get(i);
QName paramIdlType = param.getIdltype();
QName paramName = new QName("", param.getName());
ModeType paramMode = param.getMode();
CorbaObjectHandler obj =
CorbaHandlerUtils.initializeObjectHandler(orb, paramName, paramIdlType, maps, service);
streamables[i] = new CorbaStreamable(obj, paramName);
if (paramMode.value().equals("in")) {
streamables[i].setMode(org.omg.CORBA.ARG_IN.value);
} else if (paramMode.value().equals("out")) {
streamables[i].setMode(org.omg.CORBA.ARG_OUT.value);
} else {
streamables[i].setMode(org.omg.CORBA.ARG_INOUT.value);
}
Any value = orb.create_any();
value.insert_Streamable(streamables[i]);
list.add_value(streamables[i].getName(), value, streamables[i].getMode());
corbaMsg.addStreamableArgument(streamables[i]);
}
return list;
}