* @param op org.jacorb.ir;.gui.typesystem.remote.IROperation
* @param params java.lang.String[]
*/
public java.lang.Object invokeOperation(IROperation op, String[] params) {
ModelParticipant[] irParams = op.contents();
Request request = ((org.omg.CORBA.Object)counterPart)._request(op.getName());
IRNode associatedNode = (IRNode)op.getAssociatedTypeSystemNode();
request.set_return_type(associatedNode.getTypeCode()); // was ist mit Alias-Typen?
for (int i=0; i<irParams.length; i++) {
IRParameter irParam = (IRParameter)irParams[i];
switch (irParam.getMode().value()) {
case ParameterMode._PARAM_IN:
ObjectRepresentantFactory.insertFromString(request.add_in_arg(),params[i],irParam.getTypeCode().kind());
break;
case ParameterMode._PARAM_OUT:
ObjectRepresentantFactory.insertFromString(request.add_out_arg(),params[i],irParam.getTypeCode().kind());
break;
case ParameterMode._PARAM_INOUT:
ObjectRepresentantFactory.insertFromString(request.add_inout_arg(),params[i],irParam.getTypeCode().kind());
break;
}
}
request.invoke();
Any any = request.return_value();
if (any!=null) {
return ObjectRepresentantFactory.objectFromAny(any);
}
return null;
}